2016-07-26 7 views
1

Я использую Oracle Express, и я хотел бы сделать заявление, чтобы добавить проверочное ограничение на мой Invoices таблицы, что позволяет Payment_Date быть, если Payment_Total = 0 NULL, И Payment_Date быть НЕ NULL, если Payment_Total > 0.Alter 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

 Смежные вопросы

  • Нет связанных вопросов^_^