Итак, я исхожу из MySQL, где я мог бы сделать INSERT при DUPLICATE UPDATE :
INSERT INTO table (a,b,c)
VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
Но теперь я использую PostgreSQL и есть попытки добавить функциональность UPSERT, похоже, что MERGE может работать для того, что я хотел бы, но хотел посмотреть, является ли это наиболее оптимальным синтаксисом. Пример синтаксиса 1 , Я тоже это видел, но не понимаю, как реализовать . Я еще не пробовал это, потому что думал, что MERGE использовался для слияния данных из table1 в Table2, или что-то вроде этого сработает?
MERGE
INTO table
USING table
ON c = 1
WHEN MATCHED THEN
UPDATE
SET c=c+1
WHEN NOT MATCHED THEN
INSERT (a,b,c)
VALUES (1,2,3)
Есть ли другие предложения?