我刚刚开始学习SQL并且遇到了第一道障碍,我无法创建表格。下面是代码示例。我在运行语句时收到的错误,引用第7行,说明“关系运算符”存在问题。 第7行的目的是检查此人的年龄是否大于18岁。
我正在使用Oracle(不确定这是否会有所作为)。我希望有人能指出我正确的方向。
1. CREATE TABLE employee
2. (
3. empID VARCHAR2(20) NOT NULL primary key,
4. surname VARCHAR2(15) NOT NULL CHECK(surname=UPPER(surname)),
5. deptCode CHAR(5) NOT NULL CHECK(deptCode=UPPER(deptCode)),
6. empYear NUMBER(1,0) NOT NULL CHECK(empYear >= 1 AND empYear <= 4),
7. birthDate DATE NOT NULL CHECK((SYSDATE - birthDate) /365 ) >= 18
8. );
谢谢。
答案 0 :(得分:8)
您无法定义引用SYSDATE等函数的CHECK约束。
Oracle文档讨论了restrictions on CHECK constraints
答案 1 :(得分:1)
检查括号。
DATE NOT NULL CHECK(((SYSDATE - birthDate) /365 ) >= 18)
编辑:Justin指出,你不能在这里使用SYSDATE。