gpt4 book ai didi

mysql - "INSERT INTO .. ON DUPLICATE KEY UPDATE"只插入新条目而不替换?

转载 作者:行者123 更新时间:2023-11-30 22:50:49 24 4
gpt4 key购买 nike

我有一个表,比如 table1,它有 3 列:id、number 和 name。id 是自动递增的。

我想实现一个向表中插入条目的sql语句,但是如果该行已经存在,则忽略它。

但是,

每次我跑:

INSERT INTO table1( number, name) 
VALUES(num, name)
ON DUPLICATE KEY
UPDATE number = VALUES(number),
name = VALUES(name)

它似乎忽略了具有匹配的数字和名称值的行,并无论如何将条目附加到表的末尾。

我能做些什么来防止这种情况发生吗?我觉得这与拥有 auto_incrementing 主键有关?谢谢

最佳答案

在数字和名称上创建一个唯一的复合索引。

Alter table table1 Add unique index idx_unq(`number`,`name`);

然后执行 Insert Ignore INTO table1(number,name) VALUES(num, name);

这应该可以防止重复项被插入到表中。

Useful link on Unique indexes

关于mysql - "INSERT INTO .. ON DUPLICATE KEY UPDATE"只插入新条目而不替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28180903/

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