2016-07-26 87 views
1

我使用Oracle快捷,我想作一个语句来检查约束添加到我的Invoices表,允许Payment_Date是NULL,如果Payment_Total = 0,和Payment_Date为NOT NULL如果Payment_Total > 0ALTER TABLE添加检查空值,而不是空值

我只理解如何修改一个表来添加一个约束来检查列的值。我不明白如何制定允许空值的约束,或者如果满足某个条件(ColumnValue> SomeValue),则禁止空值。

回答

3

这里是你如何表达的检查约束:

alter table t add constraint ck_values 
    check ((payment_date is null and payment_total = 0) or 
      (payment_date is not null and payment_total > 0) 
     ); 
+0

我不知道,我可能会在检查状态表达出来。我认为我需要在检查条件之外使用关键字NULL和NOT NULL作为属性,如create table语法。谢谢你的帮助! – ArmorCode