我有一张桌子
id | user | date | data1 | data2 ......其中id是主要的唯一键。
我正在尝试编写一个查询,如果user和date都存在,则可以进行更新,而如果其中任何一个都不存在,则插入它们
我考虑了INSERT INTO...ON重复的KEY...UPDATE方法,但这需要使用唯一的键,这是我有但没有使用的。
处理这个问题的好办法是什么?
发布于 2016-05-26 18:55:21
根据注释中的讨论,您应该使(user, date) 成为唯一的键.。
这将按预期触发INSERT INTO ... ON DUPLICATE KEY UPDATE查询,用匹配的user和date字段更新行,并插入未找到匹配字段的新行。
发布于 2016-05-26 18:30:02
唯一有效的选择是用与mysql一起使用的编程语言实现这个UPSERT,因为MySQL需要INSERT ... INTO和REPLACE的唯一键。
或者在user和date列上添加一个唯一的索引,这似乎与您的业务逻辑是一致的。
https://stackoverflow.com/questions/37468464
复制相似问题