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

SQL创建表错误

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

    我刚刚开始学习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 回复  |  直到 16 年前
        1
  •  8
  •   Justin Cave    16 年前

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

    Oracle文档讨论了 restrictions on CHECK constraints

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

    检查括号。

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

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