0
我正在使用Oracle SQL Developer。在具有特定條件的表列上添加與日期相關的約束
下面是下面的表格,我創建:
CREATE Screening_Plan
(
plan_id NUMBER (4) PRIMARY KEY,
movie_id NUMBER (4) NOT NULL,
plan_start_date DATE NOT NULL,
plan_end_date DATE NOT NULL,
plan_min_start_hh24 NUMBER (2) NOT NULL,
plan_max_start_hh24 NUMBER (2) NOT NULL,
plan_no_of_screenings NUMBER (2) NOT NULL
);
對於plan_start_date列,如何添加一個約束默認:下週一?
對於plan_end_date列,如何將約束添加到默認值:next Monday + 6(days)?
對於plan_min_start_hh24列,如何添加約束以保持9(早上9點)和22(晚上10點)之間的值並將默認值設置爲9?
對於plan_max_start_hh24列,如何添加約束以保持9(上午9點)和22(下午10點)之間的值並將默認值設置爲22並設置爲大於或等於plan_min_start_hh24?
有爲什麼要添加這些規則在表級約束的原因是什麼?根據我的經驗,這種邏輯在應用層編碼爲 –
我實際上想要測試一下,看看約束如何在表級別工作以獲得知識。 – stranger
如果INSERT語句省略了此列的值,您是否希望將DEFAULT值分配給要分配給該列的列?或者你想定義一個INTEGRITY CONSTRAINT,這是一個禁止在列中存儲不符合dfined條件的值的規則?有兩個獨立的東西 - DEFAULT和CONSTRAINT。在後一種情況下,「開始日期必須是NEXT MONDAY」這樣的約束沒有意義。 – krokodilko