create table EDUCATION
(
EDU_NO NUMBER not null
constraint EDUCATION_PK
primary key,
EDU_PERIOD VARCHAR2(50),
EDU_NAME VARCHAR2(100),
EDU_MAJOR VARCHAR2(100),
EDU_STATUS VARCHAR2(20),
EDU_DIVISION VARCHAR2(50),
EDU_ORDER NUMBER,
E_NO VARCHAR2(20),
REG_DATE DATE,
MOD_DATE DATE,
REG_ID VARCHAR2(50),
MOD_ID VARCHAR2(50)
)
위 쿼리문은 education의 ddl 이다.
employee 테이블에 값이 insert되면 특정 e_no의 edu_no는 시퀀스로 값이 insert되도록 하고
EDU_PERIOD VARCHAR2(50),
EDU_NAME VARCHAR2(100),
EDU_MAJOR VARCHAR2(100),
EDU_STATUS VARCHAR2(20),
EDU_DIVISION VARCHAR2(50),
EDU_ORDER NUMBER,
MOD_DATE DATE,
MOD_ID VARCHAR2(50)
는 null 값으로 들어가고
REG_DATE DATE
는 sysdate로 들어가고,
REG_ID VARCHAR2(50)
는 e_no가 들어가도록 설정하고자 하였다.
아래가 이를 구현하고자 만든 trigger이다.
CREATE OR REPLACE TRIGGER after_employee_insert
AFTER INSERT ON employee
FOR EACH ROW
BEGIN
-- 특정 e_no에 해당하는 education 레코드를 생성
INSERT INTO education (edu_no, edu_period, edu_name, edu_major, edu_status, edu_division, edu_order, e_no, reg_date, mod_date, reg_id, mod_id)
VALUES (seq_edu_no.NEXTVAL, NULL, NULL, NULL, NULL, NULL, NULL, :NEW.e_no, SYSDATE, NULL, :NEW.e_no, NULL);
END;
/