2016-07-26 40 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