[英]UNIQUE constraint across multiple columns
I need a UNIQUE
constraint which spans 2 columns, but allows NULL values anywhere.我需要一个跨越 2 列的
UNIQUE
约束,但在任何地方都允许 NULL 值。 I have this :我有这个 :
CREATE TABLE table_1{
COLUMN a INT SET DEFAULT NULL,
COLUMN b INT SET DEFAULT NULL
-- <insert constraint here>
}
Some examples:一些例子:
a b
1 2
3 4
valid
a b
1 1
2 3
invalid
a b
1 2
1 3
invalid
a b
1 2
3 1
invalid
a b
1 2
3 NULL
valid
a b
1 2
3 NULL
4 NULL
NULL 5
valid
modification of @a_horse_with_no_name suggestion修改@a_horse_with_no_name 建议
create table table_1(a int default null, b int default null);
ALTER TABLE table_1
ADD CONSTRAINT excl exclude using gist ( (array_remove(array[a, b],NULL)) with &&);
this will work fine with NULLable columns这将适用于 NULLable 列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.