2

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

谢谢你。

4

2 回答 2

7

您不能定义引用 SYSDATE 之类的函数的 CHECK 约束。

Oracle 文档讨论了对 CHECK 约束的限制

于 2009-02-06T15:45:50.103 回答
1

检查你的括号。

DATE NOT NULL CHECK(((SYSDATE - birthDate) /365 ) >= 18)

编辑:正如贾斯汀指出的,你不能在这里使用 SYSDATE。

于 2009-02-06T15:45:20.183 回答