[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에서 오른쪽 마우스 클릭
- 새로생성>트리거
수정
- 생성을 하면 테이블 하단에 트리거 리스트가 나온다 이를 클릭하여 수정
삭제
- 해당 트리거를 마우스 오른쪽 버튼 클릭하여 삭제
암튼 복원 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에서 오른쪽 마우스 클릭
- 새로생성>트리거
수정
- 생성을 하면 테이블 하단에 트리거 리스트가 나온다 이를 클릭하여 수정
삭제
- 해당 트리거를 마우스 오른쪽 버튼 클릭하여 삭제
댓글
댓글 쓰기