2017-07-28 117 views
0

我正在创建一个表来解决员工数据,并且希望向我的员工表中添加一个约束,以便18岁以下的人员不会被雇用。完整性约束检查以确保员工年龄超过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),但这不起作用。

+0

'add_months' https://docs.oracle.com/cd/ B19306_01/server.102/b14200/functions004.htm –

回答

-1

尝试使用DATEDIFF函数

datediff(year, Hire_date, DOB) < 18 
+1

Oracle中没有datediff。 – mathguy

0

约束Employee_age_ck CHECK(ADD_MONTHS(DOB,12 * 18)= < HIRE_DATE)