mysql

mysql 트리거를 만들어보자 - 삭제시 자동 insert

에스크리토 2018. 8. 3. 16:14
반응형

특정 테이블에서 데이타를 삭제하면 삭제한 데이타를 새로운 테이블에 인서트 시키는 트리거를 만들어보자...


트리거 작업할 테이블 이름이 tb1 이라고 한다면


create table trigger_tb1 like tb1;


위 명령어로 tb1 과 똑같은 테이블을 만든다.


그리고 mysql에 접속해서 mysql 콘솔상태에서 다음 명령어를 내린다...


mysql> DELIMITER //


mysql> CREATE TRIGGER tr1 BEFORE DELETE ON tb1 FOR EACH ROW


        -> BEGIN


        ->  INSERT INTO trigger_tb1 VALUES(OLD.num, OLD.site_name, OLD.mult);


        -> END


        -> //


두번째 줄까지는 콘솔이고 그 뒤로는 완료되지 않는 쿼리처럼 화면에 나온다. 거기에 입력하면된다...


delete 명령어가 발생하면 아래 insert 쿼리를 실행한다는 얘기다...


입력할 값은 컬럼앞에 OLD. 을 붙여주면 된다...


왠만한 테이블엔 다 걸어주자...


update는?


mysql> DELIMITER //


mysql> CREATE TRIGGER tettt BEFORE INSERT ON testaa FOR EACH ROW


        -> BEGIN


        ->  update test set aa=aa+NEW.aa, updateDate=now() where uid=NEW.uid;


        -> END


        -> //


이렇게 하면 된다.

반응형