반응형

📝트리거

  • 어떤 테이블의 CRUD가 이루어졌을 때 어떤 전처리나 후처리를 하고 싶을 때 거는 조건이다.

 

delimiter |    -- SQL문의 끝맺음기호를 ' | ' 로 바꿈
CREATE TRIGGER [트리거이름]
[BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON [테이블이름]
FOR EACH ROW
    [실행문];
|
delimiter ;    -- SQL문의 끝맺음기호를 ' ; ' 로 원상복구시킴

BEFORE -- CURD 적용 전에 실행문을 적용시키겠다.
AFTER -- CRUD 적용 후에 실행문을 적용시키겠다.

 

  • 참고로 테이블 전체의 변화도 읽지만 컬럼 하나의 변화도 트리거를 걸 수 있다
  • 예) Update of [컬럼명] on [테이블명]


-- 예시)
DELIMITER |
CREATE OR REPLACE TRIGGER covidTrigger  -- 트리거명 covidTrigger
AFTER UPDATE ON test -- test 테이블에 업데이트가 된 후에 적용 시키겠다.
FOR EACH ROW -- 모든 row에 적용시키겠다는 의미
'
BEGIN
UPDATE test SET modi_date = NOW() WHERE id = 1;
END |
'
DELIMITER ;

 

  • PL/SQL을 사용할 경우 작은 따옴표로 감싸줘야한다.
반응형