gpt4 book ai didi

Postgresql:有条件的唯一约束

转载 作者:行者123 更新时间:2023-11-29 11:04:52 25 4
gpt4 key购买 nike

我想添加一个约束,该约束仅对表的一部分中的列强制执行唯一性。

ALTER TABLE stop ADD CONSTRAINT myc UNIQUE (col_a) WHERE (col_b is null);

上面的WHERE部分是一厢情愿的想法。

有什么办法吗?还是我应该回到关系绘图板?

最佳答案

PostgreSQL 不定义部分(即条件)UNIQUE 约束 - 但是,您可以创建部分唯一索引

PostgreSQL 使用唯一索引来实现唯一约束,所以效果是一样的,但有一个重要的警告:你不能像你那样对唯一索引执行更新插入(ON CONFLICT DO UPDATE)针对唯一约束。

此外,您不会在 information_schema 中看到约束。

CREATE UNIQUE INDEX stop_myc ON stop (col_a) WHERE (col_b is NOT null);

参见 partial indexes .

关于Postgresql:有条件的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com