在更新唯一列时避免重复输入错误
avoid duplicate entry error in updating unique column
如何更新 mysql 中的唯一索引而不出现重复输入错误?
如果没有重复值我想更新它并且在重复输入的情况下什么也不做,更新行都不会出错。
我发现 ON DUPLICATE KEY 在更新查询中不起作用。
使用 update ignore ...
语句而不是简单的 update ...
,请注意副作用(下面引用的最后一句话)。正如 mysql update syntax 上的手册所说:
With the IGNORE modifier, the update statement does not abort even if errors occur during the update. Rows for which duplicate-key conflicts occur on a unique key value are not updated. Rows updated to values that would cause data conversion errors are updated to the closest valid values instead.
如果您不能接受副作用,那么您需要在更新前检查重复值,使用select ... for update
语句锁定要更新的记录。第三种选择是忽略应用程序对此语句的错误处理中的重复键错误。老实说,我会选择最后一个解决方案。
如何更新 mysql 中的唯一索引而不出现重复输入错误?
如果没有重复值我想更新它并且在重复输入的情况下什么也不做,更新行都不会出错。
我发现 ON DUPLICATE KEY 在更新查询中不起作用。
使用 update ignore ...
语句而不是简单的 update ...
,请注意副作用(下面引用的最后一句话)。正如 mysql update syntax 上的手册所说:
With the IGNORE modifier, the update statement does not abort even if errors occur during the update. Rows for which duplicate-key conflicts occur on a unique key value are not updated. Rows updated to values that would cause data conversion errors are updated to the closest valid values instead.
如果您不能接受副作用,那么您需要在更新前检查重复值,使用select ... for update
语句锁定要更新的记录。第三种选择是忽略应用程序对此语句的错误处理中的重复键错误。老实说,我会选择最后一个解决方案。