2017-07-28 8 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(year, Hire_date, DOB) < 18 
+1

Oracleにはdatediffはありません。 – mathguy

0

制約Employee_age_ck CHECK(ADD_MONTHS(DOB、* 18 12)< = HIRE_DATE)DATEDIFF関数を使用してみ

関連する問題