postgresql ON CONFLICT ON CONSTRAINT有2个约束

问题描述 投票:8回答:1

我正在使用PostgreSQL 9.5,并想知道是否有可能在ON CONFLICT ON CONSTRAINT语句中包含2个约束的名称。我的sql在下面

INSERT INTO LIVE.TABLE (column1, column2, column3)
SELECT DISTINCT ON (cloumn1) column1, column2, column3
FROM STAGE.TABLE
​ON CONFLICT ON CONSTRAINT live.table.pkey DO NOTHING

这工作正常,但我想要做的是在ON CONFLICT ON CONSTRAINT语句中包含第二个约束。我尝试过以下选项,但它似乎对我不起作用。

INSERT INTO LIVE.TABLE (column1, column2, column3)
SELECT DISTINCT ON (cloumn1) column1, column2, column3
FROM STAGE.TABLE
​ON CONFLICT ON CONSTRAINT live.table.pkey, live.table.fkey1 DO NOTHING

任何建议将受到高度赞赏。

postgresql sql-insert upsert
1个回答
1
投票

使用上面的列创建约束,比如

CONSTRAINT live_table_ukey UNIQUE(live.table.pkey, live.table.fkey1)

然后在约束语句的冲突中使用此键。

© www.soinside.com 2019 - 2024. All rights reserved.