在Postgresql中,强制在两列的组合上唯一

前端之家收集整理的这篇文章主要介绍了在Postgresql中,强制在两列的组合上唯一前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在postgresql中设置一个表,使得两列一起必须是唯一的。可以有任何值的多个值,只要没有两个共享这两个值。

例如:

CREATE TABLE soMetable (
    id int PRIMARY KEY AUTOINCREMENT,col1 int NOT NULL,col2 int NOT NULL
)

因此,col1和col2可以重复,但不能同时。所以,这将被允许(不包括id)

1 1
1 2
2 1
2 2

但不是这样:

1 1
1 2
1 1 -- would reject this insert for violating constraints
CREATE TABLE soMetable (
    id serial primary key,col2 int NOT NULL,unique (col1,col2)
)

autoincrement不是postgresql。你想要一个串口。

如果col1和col2是唯一的并且不能为null,那么它们就是一个很好的主键:

CREATE TABLE soMetable (
    col1 int NOT NULL,primary key (col1,col2)
)
原文链接:https://www.f2er.com/postgresql/193674.html

猜你在找的Postgre SQL相关文章