加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:50:18 所属栏目:百科 来源:网络整理
导读:我想在postgresql中设置一个表,使得两列一起必须是唯一的。可以有任何值的多个值,只要没有两个共享这两个值。 例如: CREATE TABLE someTable ( id int PRIMARY KEY AUTOINCREMENT,col1 int NOT NULL,col2 int NOT NULL) 因此,col1和col2可以重复,但不能
我想在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)
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读