我必须在表格上添加一个检查约束来执行以下操作:
在租户中,如果LeaseExpirationDate不为NULL,则它必须晚于LeaseStartDate。
我只是想知道,我可以在SQL中使用以下内容吗?
P:LeaseExpirationDate不为空 T:LeaseExpirationDate晚于LeaseStartDate
P-> T == - P OR T
真相表
P T P->T=-P OR X
T F F
F U T
T T T
我不确定我们是否可以使用三个有价值的逻辑来执行后者,但看起来它符合条件。
答案 0 :(得分:2)
利用SQL的三值逻辑以及检查约束不需要FALSE
而不是TRUE
来传递:
CHECK (LeaseExpirationDate > LeastStartDate)
如果LeaseExpirationDate
为NULL
,则整个条件的评估结果为UNKNOWN
。哪个不是FALSE
,因此不会违反约束。