gpt4 book ai didi

sql - 如果存在重复行,则增加 SQL 数据库中的列值

转载 作者:行者123 更新时间:2023-11-29 14:30:15 24 4
gpt4 key购买 nike

假设我有一个这样的表:

Number   Product    Type
1 Meat Cow
1 Milk A

如果我插入一个新行:

INSERT INTO t1 (Product, Type) VALUES (Meat, Cow)

我不想要一个新行。我希望 Product = Meat 和 Type = Cow 的列“Number”增加 1:

Number   Product    Type
2 Meat Cow
1 Milk A

是否有执行此操作的 SQL 命令?

最佳答案

您可以使用从版本 9.5 开始的 ON CONFLICT 尝试以下操作:

create table t1( Number int, 
Product varchar(15),
Type varchar(15),
primary key (Product, Type)
);

insert into t1(Number,Product,Type) values(1,'Meat','Cow');

insert into t1(Number,Product,Type) values(1,'Meat','Cow')
on conflict (Product,Type) do update set Number = t1.Number + 1;
select * from t1;

number product type
------ ------- ----
2 Meat Cow

Rextester Demo

其中 ProductType 列必须使用复合唯一(主)键,如果不存在则 42P10:没有唯一或排除约束匹配ON CONFLICT 规范 引发错误。

关于sql - 如果存在重复行,则增加 SQL 数据库中的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930389/

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