1

我需要向x与其他表具有多对一关系的表添加约束。所以表x有字段 other_table_id。

表中还有另一列x称为primary布尔类型。

我想确保有none or only one primary=trueper one other_table_id

多行可以具有other_table_id相同的值,但每行primary=false只有一个。trueother_table_id

如何创建此约束?

4

1 回答 1

5

为此,您需要一个部分唯一索引:

create unique index idx_unique_other 
   on table_x (other_table_id)
   where primary;

这只会索引primarycolumn值为 的行true。对于那些人来说,other_table_id必须是独一无二的。

于 2013-11-01T09:52:19.460 回答