在PostgreSQL中是否有一种简单的方法来执行与SQLite中以下内容相当的操作?
INSERT INTO foo (x, y, z) VALUES (1, 2, 3) ON CONFLICT replace;
我找了很多解决方案,但发现它们都需要使用复杂的自定义函数。另一个解决我的问题的方法是只需执行以下操作:
delete from foo where x=1; INSERT INTO foo (x, y, z) VALUES (1, 2, 3) ON CONFLICT replace;
虽然语义上不完全相同,但对于我的情况可以使用。
如果不需要自定义函数,我更喜欢使用ON CONFLICT
规则。