SQL创建表错误

时间:2009-02-06 15:42:22

标签: sql oracle create-table

我刚刚开始学习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.  );

谢谢。

2 个答案:

答案 0 :(得分:8)

您无法定义引用SYSDATE等函数的CHECK约束。

Oracle文档讨论了restrictions on CHECK constraints

答案 1 :(得分:1)

检查括号。

DATE NOT NULL CHECK(((SYSDATE - birthDate) /365 ) >= 18)
编辑:Justin指出,你不能在这里使用SYSDATE。