我有一个关税表。如何根据字段值创建约束条件
表有三列:id INT,接收INT,is_default INT(0/1);
我需要作出约束,这将限制is_default = 1的同一接待的新关税的创建。因此,每个接待只能有一个默认关税。
感谢
我有一个关税表。如何根据字段值创建约束条件
表有三列:id INT,接收INT,is_default INT(0/1);
我需要作出约束,这将限制is_default = 1的同一接待的新关税的创建。因此,每个接待只能有一个默认关税。
感谢
你需要一个unique partial index:
CREATE UNIQUE INDEX uniq_tariff_reception_where_is_default
ON tariff (reception)
WHERE is_default = 1
UNIQUE
索引工作完全一样UNIQUE
限制(在引擎盖下,UNIQUE
约束实际创建UNIQUE
指标实现唯一性),但约束版本cannot be partial:
添加一个唯一约束wil l在约束中列出的列或列组上自动创建一个唯一的B-树索引。仅覆盖一些行的唯一性限制不能被写为唯一约束,但可以通过创建唯一的部分索引来强制执行此限制。
注:请考虑使用BOOLEAN
型为is_default
列。因此,您的指数可能是WHERE is_default = TRUE
甚至WHERE is_default
。
非常感谢! –
不使用整数作为布尔标志。使用'boolean'列 –