问题描述
我正在尝试更新表中的记录,但出现以下错误:
Error Code: 1062. Duplicate entry '5452' for key 'device_id'
来自
update device_info set serial_number = '728015162815',ip_address = '192.168.77.121',location_code = '1',battery_status = 'Not Charging : 36%'
where device_id = 5452
这里发生了什么?我可以理解 插入 上的这个错误,但这是在 更新语句 上抛出的。
解决方法
为了记录,上面的评论显示了解决方案。
根据您运行的 SQL 语句似乎不可能出现的神秘错误可能是由另一个 SQL 语句引起的。这怎么会发生?它可以由您的 UPDATE 产生的触发器运行。
触发器可能正在向其他某个表插入一行,从而导致重复键错误。或者触发器可能会更改正在更新的当前行的唯一列中的值,这也可能导致相同的错误。
这将显示存在哪些触发器:
SHOW TRIGGERS;