在postgres 9.5中,我有这个sql约束:
CONSTRAINT gp_property_name_unique UNIQUE (name, parent_id, active)
这只有在parent_id不为null时才有效。如果名称字段是根字段,我如何确保名称字段是唯一的? (=> parent_id为空)
感谢。
答案 0 :(得分:0)
您可以添加一个唯一的索引,如:
CREATE UNIQUE INDEX gp_property_name_unique_parent
ON your_table(name, active) WHERE parent_id IS NULL;
此索引仅适用于parent_id
为null
的行。由于它是唯一的,它的作用就像请求的约束。实际上,postgres中的唯一约束基于唯一索引。