我正在尝试对带有ON CONFLICT
UPDATE
子句的表进行批量增补(每个查询超过5万行)。
Ex: INSERT INTO foo (col1, col2, col3) values (v1,v2,v3), (v4,v5,v6) ON CONFLICT (col1, col2) DO UPDATE SET col3 = EXCLUDED.col3;
当(col1,col2)
元组是行的唯一标识符时,上述方法就可以正常工作。
可能我需要进行UPDATE会影响多行。
Ex: INSERT INTO foo (col1, col2, col3) values (v1,v2,v3), (v4,v5,v6) ON CONFLICT (col1) DO UPDATE SET col3 = EXCLUDED.col3;
我希望ON CONFLICT子句更新col1 = EXCLUDED.col1的所有行
但是当我在“ ON CONFLICT” postgres上放置一个非唯一元组时,将导致以下错误:“没有符合ON CONFLICT
规范的唯一或排除约束”
有没有一种方法可以达到预期的行为?