기록

*44일차 실습 본문

학원/실습

*44일차 실습

pringspring 2022. 3. 30. 21:37

## @실습문제
1. EX_EMPLOYEE테이블의 퇴사자관리를 별도의 테이블 TBL_EMP_QUIT에서 하려고 한다.
다음과 같이 TBL_EMP_JOIN, TBL_EMP_QUIT테이블을 생성하고, TBL_EMP_JOIN에서 DELETE시 자동으로 

퇴사자 데이터가 TBL_EMP_QUIT에 INSERT되도록 트리거를 생성하라.

-TBL_EMP_JOIN 테이블 생성 : EX_EMPLOYEE테이블에서 QUIT_DATE, QUIT_YN 컬럼제외하고 복사

    CREATE TABLE TBL_EMP_JOIN
    AS
    SELECT EMP_ID, EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE, JOB_CODE, SAL_LEVEL, SALARY, BONUS, MANAGER_ID, HIRE_DATE
    FROM EX_EMPLOYEE
    WHERE QUIT_YN = 'N';

    SELECT * FROM TBL_EMP_JOIN;

-TBL_EMP_QUIT : EX_EMPLOYEE테이블에서 QUIT_YN 컬럼제외하고 복사

    CREATE TABLE TBL_EMP_QUIT
    AS
    SELECT EMP_ID, EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE, JOB_CODE, SAL_LEVEL, SALARY, BONUS, MANAGER_ID, HIRE_DATE, QUIT_DATE
    FROM EX_EMPLOYEE
    WHERE QUIT_YN = 'Y';

    SELECT * FROM TBL_EMP_QUIT;

 

 

    CREATE OR REPLACE TRIGGER TRIG_EMP_QUIT
        AFTER
        DELETE ON TBL_EMP_JOIN
        FOR EACH ROW
    BEGIN
        INSERT INTO TBL_EMP_QUIT (EMP_ID, EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE, JOB_CODE, SAL_LEVEL, SALARY, BONUS, MANAGER_ID, HIRE_DATE, QUIT_DATE)
        VALUES (:OLD.EMP_ID, :OLD.EMP_NAME, :OLD.EMP_NO, :OLD.EMAIL, :OLD.PHONE, :OLD.DEPT_CODE, :OLD.JOB_CODE, :OLD.SAL_LEVEL, :OLD.SALARY, :OLD.BONUS, :OLD.MANAGER_ID, :OLD.HIRE_DATE, SYSDATE);
        
        DBMS_OUTPUT.PUT_LINE(:OLD.EMP_ID||'사원이 퇴사자테이블로 이동했음');
    END;
    /

'학원 > 실습' 카테고리의 다른 글

*46일차 실습  (0) 2022.03.31
*45일차 실습  (0) 2022.03.30
*41일차 실습  (0) 2022.03.28
*39일차 실습  (0) 2022.03.28
*37일차 실습  (0) 2022.03.28