我有一个PostgreSQL表
CREATE TABLE metadado_log_audit (
source_table varchar NULL,
name_column varchar NULL,
is_id_relation bool NULL
);
如何设置只有一行具有is_id_relation = true和unique source_table的约束
例如,我不能保存source_table ='user'和is_id_realation = true两次Tks
1条答案
按热度按时间zd287kbt1#
您似乎需要一个约束来强制
source_table
的唯一性,其中is_id_relation
为true。在Postgres中,你可以使用一个唯一的过滤索引:
Demo on fiddle:
请注意,Postgres唯一索引确实允许重复的
null
值。在Postgres 15中,您可以使用选项nulls not distinct
更改此行为: