在MySQL中,我们可以对任何约束违规执行以下操作
INSERT INTO table {setters} ON DUPLICATE KEY UPDATE {setters}
在Postgres有没有这样做?
INSERT INTO table {setters} ON CONFLICT(*) DO UPDATE {setters}
注意:* =任何可能的密钥
为什么这是一个重要的功能?
答案 0 :(得分:1)
不确定。 PostgreSQL 9.5+允许您以这种方式执行此操作:
MySQL
查询:
INSERT INTO tablename (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
PostgreSQL
成为:
INSERT INTO tablename (a, b, c) values (1, 2, 10)
ON CONFLICT (a) DO UPDATE SET c = tablename.c + 1;