티스토리 뷰
MySQL trigger syntax
트리거란 ?
해당 테이블이나 뷰에 대해 어떤 액션이 가해 졌을 때 원하는 액션을 자동으로 처리하는 프로세스를 말하며 주로 로그데이터를 남길때 사용합니다.
트리거의 종류에는 크게 두가지로 나누어 볼 수 있습니다.
AFTER : 이벤트 이후 작동되며, 테이블에서만 사용가능합니다.
BEFORE : 이벤트 이전에 작동되며, 테이블과 뷰에서 사용가능합니다.
트리거는 CREATE TRIGGER문을 통해 생성합니다
DELIMITER $$ CREATE TRIGGER (트리거 이름) AFTER INSERT ON (기준 테이블명) FOR EACH ROW BEGIN INSERT INTO (로그 테이블명) SET (쿼리) END $$DELIMITER ; |
[ 예문 ]
트리거를 걸어줌으로써, INVOICE 테이블에 INSERT나 UPDATE, DELETE 같은 액션이 발생할 경우 INVOICE_DU테이블에도 같은 액션을 취하도록 합니다.
INSERT
DELIMITER $$
CREATE TRIGGER after_INVOICE_INSERT
AFTER INSERT ON INVOICE
FOR EACH ROW
BEGIN
INSERT INTO INVOICE_DU
SET
id = NEW.id ,
COM_CODE = NEW.COM_CODE ,
DETAIL_COUNT = NEW.DETAIL_COUNT ,
FID = NEW.FID ,
INVOICE = NEW.INVOICE ,
DEST_KIND_ID = NEW.DEST_KIND_ID ,
LAST_STATE = NEW.LAST_STATE ,
LEVEL = NEW. LEVEL ,
MOD_DATE = NEW.MOD_DATE ,
REG_DATE = NEW.REG_DATE ,
TIER_CODE = NEW.TIER_CODE ;
END
$$DELIMITER ;
DELETE
DELIMITER $$
CREATE TRIGGER after_INVOICE_DETAIL_DELETE
AFTER DELETE ON INVOICE_DETAIL
FOR EACH ROW
BEGIN
DELETE FROM INVOICE_DETAIL_DU
WHERE INVOICE_DETAIL_DU.id = old.id;
END
$$DELIMITER ;
UPDATE
DELIMITER $$
CREATE TRIGGER after_INVOICE_UPDATE
AFTER UPDATE ON INVOICE_DETAIL
FOR EACH ROW
BEGIN
UPDATE INVOICE_DETAIL_DU
SET
INVOICE_DETAIL_DU.INVOICE_ID = NEW.INVOICE_ID ,
INVOICE_DETAIL_DU.REG_DATE = NEW.REG_DATE ,
INVOICE_DETAIL_DU.STATE = NEW.STATE ,
INVOICE_DETAIL_DU.TIME = NEW.TIME ,
INVOICE_DETAIL_DU.PLACE = NEW.PLACE ,
INVOICE_DETAIL_DU.PHONE_NO = NEW.PHONE_NO ,
INVOICE_DETAIL_DU.PHONE_NO2 = NEW.PHONE_NO2 ,
INVOICE_DETAIL_DU.REMARK = NEW.REMARK ,
INVOICE_DETAIL_DU.LEVEL = NEW.LEVEL ,
INVOICE_DETAIL_DU.SYNC_YN = NEW.SYNC_YN,
INVOICE_DETAIL_DU.SYNC_DATE = NEW.SYNC_DATE
where INVOICE_DETAIL_DU.id = NEW.id;
END
$$DELIMITER ;
'Programming > Database' 카테고리의 다른 글
[MongoDB] MongoDB와 GeoJSON을 이용하여 근접 위치 확인하기 (0) | 2018.09.17 |
---|---|
[MySQL] 깨진 테이블 복구법 (Table is marked as crashed and should be repaired) (0) | 2018.08.16 |
[MySQL] MySQL - Hibernate 오류 정리 (0) | 2017.12.10 |
- Total
- Today
- Yesterday
- spring boot 포트
- AJP
- entityfactory
- nginx
- 프록시 설정
- 자바 가상머신
- spring boot
- 플러그인
- spring jpa
- spring boot 2.1
- tomcat Ajp
- 의존성 사이클
- angular2
- 엔진엑스
- plugin
- SSL
- HTTPS
- jpa 값타입
- JPA 엔티티
- https 동시사용
- HTTP
- JPA란
- JPA 영속성관리
- springboot
- spring boot http
- entity type
- JPA
- exception종류
- Spring
- entitymanager
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |