我有一张表有以下的气味
CREATE TABLE MyTable ( ID INTEGER DEFAULT(1,1),FirstIdentifier INTEGER NULL,SecondIdentifier INTEGER NULL,--.... some other fields ..... )
现在插入一个值时,FirstIdentifier和SecondIdentifier之间的列之一应该是
不是NULL.无论如何通过架构强制执行它?
解决方法
这可以使用
CHECK
constraint:
CHECK (FirstIdentifier IS NOT NULL OR SecondIdentifier IS NOT NULL)
虽然CHECK约束是表的一部分(因此是“模式”?),但它们可能不符合所需的定义.上面的CHECK不是互斥的,但可以改为这样.
快乐的编码.