gpt4 book ai didi

mysql - Mysql中出现 "Insert into Non-key Column on Duplicate Update"怎么办?

转载 作者:行者123 更新时间:2023-11-29 13:23:42 25 4
gpt4 key购买 nike

我知道mysql中有一种语法INSERT ... ON DUPLICATE KEY UPDATE,这就是您对主键或唯一键列所做的操作:例如:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;

但是对于非键列我们该怎么办呢?

假设我有一个简单的表 Tb1 (C1, C2)

C1 - C21 - 12 - 13 - 1

如果我将 1 插入到 C1 列中,那么它会将 (1, 2) 添加到表中,其中 2 是与之前的值相比增加 1 1:

C1 - C21 - 11 - 22 - 13 - 1

如果我再次将 1 插入到 C1 列中,那么它将在表中添加 (1, 3),其中 3 是与之前的值相比增加 1共 2 条:

C1 - C21 - 11 - 21 - 32 - 13 - 1

那么,只需1个查询,如何在Mysql中执行“在重复更新时插入非键列”?

注意:实际上C1列是引用其他表mainTb(C1)的外键。但我不想将数据插入 mainTb。

最佳答案

我找到了一个很酷的解决方案,但不需要使用重复。

insert into Tb1 (c1,c2) select 1, if(max(c2) is null,1, max(c2)+1) from Tb1 where c1=1

工作中 http://sqlfiddle.com/#!2/9d1317/1

关于mysql - Mysql中出现 "Insert into Non-key Column on Duplicate Update"怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20429351/

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