代码之家  ›  专栏  ›  技术社区  ›  Ronnie

SQL创建表错误

  •  2
  • Ronnie  · 技术社区  · 16 年前

    我刚刚开始学习SQL,在第一个障碍上遇到了困难,我无法创建表。下面是代码示例。我在运行语句时收到的错误引用了第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 回复  |  直到 16 年前
        1
  •  8
  •   Justin Cave    16 年前

    不能定义引用SYSDATE之类函数的检查约束。

    Oracle文档中讨论了 restrictions on CHECK constraints

        2
  •  1
  •   Otávio Décio    16 年前

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

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