[DB] MySQL triggrt 생성하기

예전에 IDC에서 AWS RDS로 DB 이전을 하는데 DB백업하고 복원을 하는데 trigger 때문에 복원이 되지 않는 문제가 있었다. 그래서 trigger 제외하여 백업 후 복원을 했더니 잘 되었다.

암튼 복원 DB에 trigger 생성을 해야하기 때문에 찾아봄.
(그때는 누가 만들어주었나?)

문법

CREATE TRIGGER trigger_name
trigger_time
trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt

trigger_name: 트리거 이름.
trigger_time: 트리거 시기, 순위 BEFORE 또는 AFTER. 
trigger_event: 트리거 이벤트, 순위, UPDATE 또는 DELETE INSERT. 
tbl_name: 동작 할 테이블 명.
trigger_stmt: 트리거 실행문.


예) stamp_logs 테이블에 INSERT 후 트리거 실행문 실행

CREATE TRIGGER `update_userinfo_stampcnt` AFTER INSERT ON `stamp_logs`
FOR EACH ROW
BEGIN
 update userinfo a
 set a.stamp_cnt=NEW.sub_total
 where a.user_id=NEW.user_id;
END;


Tip
HeidiSQL에서 trigger 관련 실행방법

생성
 - 생성을 원하는 DB에서 오른쪽 마우스 클릭
 - 새로생성>트리거

수정
 - 생성을 하면 테이블 하단에 트리거 리스트가 나온다 이를 클릭하여 수정

삭제
 - 해당 트리거를 마우스 오른쪽 버튼 클릭하여 삭제



댓글

이 블로그의 인기 게시물

[문서] excel 체크박스 삭제

[DB] MySQL 백업 / 복원

[WEB] ASP.NET System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.