完整性约束检查以确保员工年龄超过18岁

时间:2017-07-28 22:10:55

标签: sql oracle

我正在创建一个表来处理员工数据,并希望在我的员工表中添加一个约束,以便不会雇用18岁以下的人。

 CREATE TABLE EMPLOYEE
 (Emp_num    CHAR(4),
  Emp_last   Varchar2(20),
  Emp_First  Varchar2(20), 
  DOB        Date not null,
  Hire_Date  Date Default SYSDATE,
 Constraint  employee_empnum_pk Primary key(Emp_Num),
 Constraint  empee_superid_fk  foreign key(super_ID) reference 
 employee(Emp_Num);

我正在尝试添加检查约束,但不确定如何在此检查约束中定义年龄18。我试过的是Constraint Employee_age_ck CHECK(DOB+18<= Hire_date),但这不起作用。

2 个答案:

答案 0 :(得分:0)

Constraint Employee_age_ck CHECK(ADD_MONTHS(DOB,12 * 18)&lt; = Hire_date)

答案 1 :(得分:-1)

尝试使用DATEDIFF功能

datediff(year, Hire_date, DOB) < 18