gpt4 book ai didi

mysql - 如果存在更新它,否则插入 - 没有主键或唯一键(一个查询)

转载 作者:行者123 更新时间:2023-11-30 21:30:04 25 4
gpt4 key购买 nike

我有以下多对多表:

id   user_id comment_id like
1 1 1 true
2 1 2 false
3 2 1 true
4 2 2 true

我正在尝试更新一条记录(如果它存在)(例如 user_id = 1 AND comment_id = 1),否则创建一条新记录。我不能对 user_id 和 comment_id 列使用唯一键,因为同一个 ID 可以在此表中出现多次。有什么办法只用一个查询就可以做到这一点吗?

谢谢,

最佳答案

根据您的帖子,对于相同的 user_idcomment_id 组合,您不应该有两行,这使其成为唯一键的理想候选者:

ALTER TABLE mytable
ADD CONSTRAINT user_comment_unq UNIQUE (user_id, comment_id);

一旦有了这个约束,就可以使用带有 on duplicate key update 子句的 insert 语句。例如:

INSERT INTO mytable (`user_id`, `comment_id`, `like`)
VALUES (1, 1, TRUE)
ON DUPLICATE KEY UPDATE `like` = TRUE

关于mysql - 如果存在更新它,否则插入 - 没有主键或唯一键(一个查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56778162/

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