簡體   English   中英

oracle sql檢查約束條件滿足

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM