Ошибка создания таблицы SQL

Asked
Viewd345

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.  );
 

Спасибо.

2 ответов

8

Вы не можете определить ограничение CHECK, которое ссылается на такую ​​функцию, как SYSDATE.

В документации Oracle обсуждается ограничения на ограничения CHECK

  • Спасибо за помощь, я разберусь. Спасибо.

    Ronnie06 февраля 2009, 15:48
1

Проверьте скобки.

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

РЕДАКТИРОВАТЬ: как указал Джастин, здесь нельзя использовать SYSDATE.