gpt4 book ai didi

mysql - SQL语句: Insert On Key Update is not working as expected when primary key is not specified in the fields to insert

转载 作者:行者123 更新时间:2023-11-29 09:52:35 24 4
gpt4 key购买 nike

您好,我正在使用“INSERT ON DUPLICATE KEY UPDATE”sql 语句来更新我的数据库。

一切都工作正常,因为我总是插入一个像这样的唯一 ID:

INSERT INTO devices(uniqueId,name) 
VALUES (4,'Printer')
ON DUPLICATE KEY UPDATE name = 'Central Printer';

但现在,我需要插入元素,但我不插入唯一的 id,我只插入或更新值,如下所示:

INSERT INTO table (a,b,c,d,e,f,g)
VALUES (2,3,4,5,6,7,8)
ON DUPLICATE KEY
UPDATE a=a, b=b, c=c, d=d, e=e, f=f, g=g;

不得不说,每次插入一行都会生成一个自增主键。

我的问题是,现在插入的行是重复的,因为我没有在 sql 语句中显式插入主键或唯一 id。

我应该做什么?

例如,也许我需要显式插入主键?我想使用这个主自动增量键。

对于戈登的推荐,我添加了一个示例案例,您可以在下图中看到 Rows Output

在这种情况下,我添加前三行,然后尝试使用不同的信息再次更新前三行...好吧,我看到错误...没有可以比较的键... ...:$

感谢您的回答,

最佳答案

如果要防止列重复,请在它们上创建唯一索引或约束。例如:

create unique index unq_table_7 on table(a, b, c, d, e, f, g);

这将保证 7 列(组合起来)是唯一的。

关于mysql - SQL语句: Insert On Key Update is not working as expected when primary key is not specified in the fields to insert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54546044/

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