【发布时间】:2018-08-01 14:22:46
【问题描述】:
我在 Postgres db 中有一个没有主键的表。如果两列的组合具有相同的值,我想更新。
...
ON CONFLICT (col1, col2)
DO UPDATE
ELSE
INSERT
...
没有主键我找不到任何东西。此外,col1 和 col2 的组合是独一无二的。 col1 可能有多行具有相同值或 col2 但不能一起使用。
所以我的桌子是这样的:
col1 col2
1 A
1 B
2 A
2 B
我不能对这些列中的任何一个有唯一约束,但将索引组合在一起的工作方式如下:
CREATE TABLE example (
col1 integer,
col2 integer,
col3 integer,
UNIQUE (col1, col3));
但是现在,如何处理插入。 ON CONFLICT 条件应该是什么,因为我们不能在 2 列上使用,所以回到同一个问题。
【问题讨论】:
标签: postgresql insert sql-update upsert