我找不到阻止人们将来输入日期的语法。我有这个,但是行不通?我只允许使用oracles SQL plus
CONSTRAINT dateofenrollment检查(dateofenrolment <= sysdate)
您不能在Oracle中使用检查约束来执行此操作。问题在于,检查约束中使用的功能必须是确定性的。也就是说,它们必须在给定相同参数的情况下返回相同的值。显然,sysdate
不满足此要求,因为其值每次都会更改。
Oracle施加此限制是因为check
约束不仅在将数据插入(或修改)表中时有效,而且始终存在。
但是,您可以使用触发器来执行所需的操作。只需定义insert
和update
触发器即可防止输入错误的值。