Oracle - 如何实施Start_Date< End_Date约束?

时间:2018-04-18 16:18:47

标签: sql oracle

在Oracle 11g中,我想创建一个包含两个日期列的表,并确保其中一个始终小于另一个。列将是:

START_DATE   DATE NOT NULL
END_DATE     DATE NOT NULL

规则是START_DATE < END_DATE

我应该在每个列的约束中执行此操作吗? 或者在桌面上的AFTER ROW触发器中?

1 个答案:

答案 0 :(得分:0)

您只需添加check约束:

alter table t add constraint chk_t_dates check (start_date < end_date)

请注意,您甚至不必在约束中检查NULL(如果值为NULL,则布尔逻辑将返回NULL。约束逻辑 - 而不是WHEREWHEN - 仅将显式“false”视为未传递,因此NULL满足约束。