在一个postgresql表中使用多个唯一约束

在一个postgresql表中使用多个唯一约束,sql,node.js,postgresql,Sql,Node.js,Postgresql,我正在尝试编写一个命令,如果其中两列不包含相同的数据,则向postgreSQL表中添加一行。user\u id和vention\u id都不需要唯一,但是我不想添加与前一行具有相同的user\u id和vention\u id的新行 我的桌子 id user_id venue_id like dislike 1 1 1 1 0 2 1 2 0 0 3 2 2 1 1 目前我正在努力 IN

我正在尝试编写一个命令,如果其中两列不包含相同的数据,则向postgreSQL表中添加一行。
user\u id
vention\u id
都不需要唯一,但是我不想添加与前一行具有相同的
user\u id
vention\u id
的新行

我的桌子

id user_id venue_id like dislike
1   1        1       1    0
2   1        2       0    0
3   2        2       1    1
目前我正在努力

INSERT INTO user_matches (user_id, venue_id) VALUES (1,1) ON CONFLICT DO NOTHING;

您只需要在两列上设置唯一的索引/约束:

alter table user_matches add constraint unq_user_matches_user_venue
    unique (user_id, venue_id);

然后,您可以将此约束用于冲突上的

Lindoff,这似乎适用于单个条目,但我使用多输入语句
插入用户匹配(用户id,场地id)值(1,10)、(1,20)、(1,3)并且我不希望当只有一个条目是重复的时整个查询失败。@tdammon。这就是为什么在冲突忽略上使用