在 MySQL 中,更新表时,可能会遇到这样的情况:为列指定的新值是与其当前值相同。在这种情况下,自然会出现一个问题:MySQL 会覆盖现有值还是完全忽略更新?
UPDATE 语句的 MySQL 文档提供了答案:
如果将列设置为它当前的值,MySQL 会注意到这一点并且不会更新它。
这意味着当您运行如下更新查询时:
UPDATE `user` SET user_name = 'John' WHERE user_id = 1
其中列值已经是“John” ,MySQL 将识别出新值与现有值相同,并且不会尝试更新它。这是一项优化功能,有助于防止不必要的数据库写入。
因此,在提供的示例中,MySQL 不会覆盖现有值,并且会为 user_id = 1 的用户保留 'user_name' 列不变。行为确保数据库不会承受不必要的冗余写入操作负担。
以上是当现有值相同时,MySQL 更新查询是否会覆盖它们?的详细内容。更多信息请关注PHP中文网其他相关文章!