当前位置:   article > 正文

postgresql支持唯一约束吗_PostgreSQL多列唯一约束和NULL值

postgresql支持唯一约束吗_PostgreSQL多列唯一约束和NULL值

您可以在纯SQL中执行此操作.除了你拥有的那个之外,创建一个

partial unique index:

CREATE UNIQUE INDEX ab_c_null_idx ON my_table (id_A,id_B) WHERE id_C IS NULL;

这样您就可以在表格中输入(a,b,c):

(1,1)

(1,2)

(1,NULL)

但这些都不是第二次.

或者使用两个部分UNIQUE索引,没有完整的索引(或约束).最佳解决方案取决于您的要求的详细信息.相比:

旁白

所以:

CREATE TABLE my_table (

my_table_id bigint GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY -- for pg 10+

-- my_table_id bigserial PRIMARY KEY -- for pg 9.6 or older,id_a int8 NOT NULL,id_b int8 NOT NULL,id_c int8,CONSTRAINT u_constraint UNIQUE (id_a,id_b,id_c)

);

如果在表的生命周期内(包括废弃行和已删除行)预计不超过20亿行(> 2147483647),请考虑整数(4个字节)而不是bigint(8个字节).

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/554237
推荐阅读
相关标签
  

闽ICP备14008679号