3 回答
TA贡献2016条经验 获得超9个赞
您不能在检查约束中使用SYSDATE。根据文件
检查约束条件不能包含以下结构:
子查询和标量子查询表达式
调用不确定的函数(CURRENT_DATE,
CURRENT_TIMESTAMP,DBTIMEZONE,
LOCALTIMESTAMP,SESSIONTIMEZONE,
SYSDATE,SYSTIMESTAMP,UID,USER和USERENV)调用用户定义的函数
取消引用REF列(例如,使用DEREF函数)
嵌套表列或属性
伪列CURRVAL,NEXTVAL,LEVEL或ROWNUM
未完全指定的日期常量
对于10g第2版(10.2),请参阅约束,对于11g第2版(11.2),请参阅约束。
请记住,完整性约束是关于表数据的声明,它始终为 true。
无论如何:我不确切地知道你想要实现什么,但我认为你可以使用触发器来达到这个目的。
TA贡献1772条经验 获得超5个赞
将sysdate写入列并将其用于验证。此列可能是您的审核列(例如:创建日期)
CREATE TABLE "AB_EMPLOYEE22"
(
"NAME" VARCHAR2 ( 20 BYTE ),
"AGE" NUMBER,
"SALARY" NUMBER,
"DOB" DATE,
"DOJ" DATE DEFAULT SYSDATE
);
Table Created
ALTER TABLE "AB_EMPLOYEE22" ADD CONSTRAINT
AGE_CHECK CHECK((ROUND((DOJ-DOB)/365)) = AGE) ENABLE;
Table Altered
- 3 回答
- 0 关注
- 999 浏览
添加回答
举报