UPDATE/INSERT 基于非唯一键?
UPDATE/INSERT based on non-unique keys?
我有一个 table 包含
id | user | date | data1 | data2 ......
其中 id
是主唯一键。
我正在尝试编写一个查询,如果 user
和 date
都存在则可以更新,而如果其中一个不存在则可以插入
我想到了 INSERT INTO...ON DUPLICATE KEY...UPDATE 方法,但这需要使用唯一键,我有但没有使用。
处理这个问题的好方法是什么?
唯一有效的选择是使用与 mysql 一起使用的编程语言来实现此 UPSERT
,因为 MySQL 需要为 INSERT ... INTO
和REPLACE
.
或者在 user
和 date
列上添加一个唯一索引,这似乎与您的业务逻辑一致。
根据评论中的讨论,您应该将 (user, date)
设为唯一键。
这将按预期触发 INSERT INTO ... ON DUPLICATE KEY UPDATE
查询,更新具有匹配 user
和 date
字段的行,并在未找到匹配项的地方插入新行。
我有一个 table 包含
id | user | date | data1 | data2 ......
其中 id
是主唯一键。
我正在尝试编写一个查询,如果 user
和 date
都存在则可以更新,而如果其中一个不存在则可以插入
我想到了 INSERT INTO...ON DUPLICATE KEY...UPDATE 方法,但这需要使用唯一键,我有但没有使用。
处理这个问题的好方法是什么?
唯一有效的选择是使用与 mysql 一起使用的编程语言来实现此 UPSERT
,因为 MySQL 需要为 INSERT ... INTO
和REPLACE
.
或者在 user
和 date
列上添加一个唯一索引,这似乎与您的业务逻辑一致。
根据评论中的讨论,您应该将 (user, date)
设为唯一键。
这将按预期触发 INSERT INTO ... ON DUPLICATE KEY UPDATE
查询,更新具有匹配 user
和 date
字段的行,并在未找到匹配项的地方插入新行。