[英]oracle sql check constraint condition met
初學者問題:有沒有一種方法可以寫一個檢查約束來限制滿足條件的數據。 例如,如果我不想在特定日期允許1100至1300之間的約會時間。
ALTER TABLE appointment_info
ADD CONSTRAINT ap_time_ck CHECK (ap_time NOT BETWEEN 11 and 13);
我試過了
ALTER TABLE appointment_info
ADD CONSTRAINT ap_time_ck CHECK (ap_time NOT BETWEEN 11 and 13 AND ap_date != '02-APR-2014');
但這顯然會限制所有1100至1300之間的約會時間以及4月2日的所有約會。
那是可能的解決方案:
ALTER TABLE appointment_info
ADD CONSTRAINT ap_time_ck CHECK (not (ap_time BETWEEN 11 and 13 and ap_date = date '2014-04-02'));
我反對使用此命令:“ '02-APR-2014'
因為它可能取決於NLS設置。
或者只是改變and
條件, or
在你的嘗試。 也可以。
ALTER TABLE appointment_info
ADD CONSTRAINT ap_time_ck CHECK (ap_time NOT BETWEEN 11 and 13 OR ap_date != '02-APR-2014');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.