我想在PostgreSQL中建立一个表,使得两列在一起必须是唯一的。只要没有两个共享这两个值,就可以有多个值。
例如:
CREATE TABLE someTable ( id int PRIMARY KEY AUTOINCREMENT, col1 int NOT NULL, col2 int NOT NULL )
因此,col1并且col2可以重复,但不能同时重复。因此,这将被允许(不包括ID)
col1
col2
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, col1 int NOT NULL, col2 int NOT NULL, UNIQUE (col1, col2) )
autoincrement不是postgresql。你想要一个serial。
autoincrement
serial
如果col1和col2成为唯一且不能为null,则它们构成一个很好的主键:
CREATE TABLE someTable ( col1 int NOT NULL, col2 int NOT NULL, PRIMARY KEY (col1, col2) )