반응형
📝트리거
- 어떤 테이블의 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을 사용할 경우 작은 따옴표로 감싸줘야한다.
반응형
'[Database] > [MySql]' 카테고리의 다른 글
[MySql][Database] 데이터베이스 CSV 파일 읽어서 데이터베이스에 넣기 (0) | 2022.06.23 |
---|---|
[MySql][Database] 데이터베이스 테이블 스키마 구조 변경 (CREATE OR REPLACE) (0) | 2022.06.23 |
[MySql][Database] 데이터베이스 위경도 값으로 두 좌표 직선거리 계산 (1m 당 위경도 값) (0) | 2022.06.20 |
[MySql][Database] 데이터베이스 사용자 계정생성, 권한 부여하기 (0) | 2022.03.12 |
[MySql][Database] 데이터베이스 조인[JOIN] (일대다, INNER JOIN, LEFT JOIN, RIGHT JOIN, UNION) (0) | 2021.09.20 |