Вы можете попробовать следующее, используя ON CONFLICT
, который начинается с версии 9.5
:
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
, где составной уникальный (первичный) ключ является обязательным для столбцов Product
и Type
, если не существует, чем 42P10: нет уникального или исключающего ограничения, соответствующего спецификации ON CONFLICT ошибка возникает.