是否有可能具有复杂的检查约束?SQL扩展检查约束
例如我有一个客户表,其中每个记录都分配了一个客户类型。
因此,我可以有几个相同类型的客户。
我想为每种类型设置一个客户作为该类型的“主要”帐户,但每种类型只有一个客户可以是主要客户。
是否可以在IsPrimary字段上添加检查约束条件,检查所有相同类型的客户是否已经有一个标记为主要的客户?
我可以在C#代码中做到这一点,但我希望这是一个额外的检查。
我也可以使用触发器,但我想坚持约束,以便我可以以同样的方式处理所有错误的错误。
谢谢
'CHECK'约束只能约束单列(列检查约束)或单列中的所有列(表检查约束)。标准SQL也描述了'ASSERTION',它可以应用于表中的所有行,但我并不认为已经有很多研究探讨如何使ASSERTION有效地执行,因此大多数数据库系统实际上并不实际执行它们。 –