gpt4 book ai didi

MySQL:INSERT IGNORE 或 ON DUPLICATE KEY UPDATE 检查多个列而不是唯一列

转载 作者:可可西里 更新时间:2023-11-01 08:21:33 25 4
gpt4 key购买 nike

如果存在包含特定值的行,我想插入行,如果不存在,则更新它。

具体来说:

user_id=5, user_zip=12345, distance=600 列存在于数据库中。

如果我尝试插入 user_id=5, user_zip=12345, distance=700 它应该只更新 distance

但我尝试插入 user_id=5, user_zip=67890, distance=800 它应该插入一个新行。

我无法定义列 user_zipdistance 唯一,因此我可以使用重复键更新。

最佳答案

我认为您误解了ON DUPLICATE KEY UPDATE 的工作原理。对于 (user_id, user_zip) 的唯一约束,这应该有效:

INSERT INTO yourTable (user_id, user_zip, distance) VALUES (5,12345,600)
ON DUPLICATE KEY UPDATE distance=600;

您不必将 user_zip 定义为唯一(这就是我理解您的问题的方式),只需定义 user_iduser_zip 的组合即可。所以您仍然可以有 2 个或更多行具有相同的 user_id,只是 user_zip 无法匹配那些行。

关于MySQL:INSERT IGNORE 或 ON DUPLICATE KEY UPDATE 检查多个列而不是唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7025651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com