一尘不染

用于重复更新的UPSERT或INSERT的MERGE语法

sql

所以我来自MySQL,可以在DUPLICATE
UPDATE上
执行INSERT

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

但是现在我正在使用PostgreSQL,并且正在努力添加UPSERT功能,看起来MERGE可能适用于我想要的功能,但想查看这是否是最佳语法。示例语法1我也看到了,但是不知道如何实现。我还没有尝试过,因为我认为MERGE用于将数据从表1合并到表2,或者类似的工作?

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)

还有其他建议吗?


阅读 163

收藏
2021-05-16

共1个答案

一尘不染

在MERGE可用之前,请使用以下可靠的方法:在PostgreSQL中重复更新时插入吗?

2021-05-16