UPDATE / INSERT基于非唯一键?

时间:2016-05-26 18:25:55

标签: mysql insert-update

我有一个包含

的表格
id | user | date | data1 | data2 ......

其中id是主要唯一键。

我正在尝试编写一个可以更新的查询,如果INSERT中存在userdate,如果其中任何一个不存在

我想过INSERT INTO ... ON DUPLICATE KEY ... UPDATE方法,但是这需要使用我所拥有但不使用的唯一键。

处理这个问题的好方法是什么?

2 个答案:

答案 0 :(得分:2)

根据评论中的讨论,您应使(user, date)成为唯一的密钥。

这将按预期触发INSERT INTO ... ON DUPLICATE KEY UPDATE查询,更新匹配userdate字段的行,并插入未找到匹配项的新行。

答案 1 :(得分:0)

唯一有效的选择是使用与mysql一起使用的编程语言实现此UPSERT,因为MySQL需要INSERT ... INTOREPLACE的唯一键。

或者在userdate列添加唯一索引,这似乎与您的业务逻辑一致。

相关问题