[SQL 독학] 트리거(trigger)
2022. 7. 27. 08:50ㆍSQL
트리거(trigger)
트리거란 테이블에 INSERT, UPDATE,
DELETE 작업이 발생하면 실행되는 코드로
자동으로 수행하여 사용자가 추가 작업을
잊어버리는 실수를 방지해준다.
이는 데이터의 무결성을 지켜준다.
스토어드 프로시저와 문법이 비슷하지만
CALL 문으로 직접 실행시킬 수 없고
오직 테이블에 DML문의 이벤트가
발생했을 때만 자동으로 실행된다.
또한 IN, OUT 매개변수를 사용할 수 없다.
# 예시1
DELIMITER $$
CREATE TRIGGER myTrigger -- 트리거 이름
AFTER DELETE -- 삭제후에 작동하도록 지정 / DELETE, INSERT, UPDATE 필요한 거 선택
ON trigger_table -- 트리거를 부착할 테이블
FOR EACH ROW -- 각 행마다 적용시킴
BEGIN
SET @msg = '가수 그룹이 삭제됨' ; -- 트리거 실행시 작동되는 코드들
END $$
DELIMITER ;
대표적인 활용 예는 은행 창구에서
새로 계좌를 만들 때 INSERT, 계좌에
입출금을 하면 UPDATE, 계좌를 폐기하면
DELETE가 작동이 된다.
DML 문 이벤트가 일어나는 경우,
변경되기 전의 데이터를 저장할
백업 테이블을 아래와 같은 방법으로
생성해놓을 수 있다.
CREATE TABLE backup_singer
( mem_id CHAR(8) NOT NULL ,
mem_name VARCHAR(10) NOT NULL,
mem_number INT NOT NULL,
addr CHAR(2) NOT NULL,
modType CHAR(2), -- 변경된 타입. '수정' 또는 '삭제'
modDate DATE, -- 변경된 날짜
modUser VARCHAR(30) -- 변경한 사용자
);
'SQL' 카테고리의 다른 글
[SQL 독학] MS SQL - Micosoft SQL Server (0) | 2022.08.04 |
---|---|
[SQL 독학] Python과 MySQL 연동하기 (0) | 2022.07.28 |
[SQL 독학] 스토어드 함수와 커서 개념 (0) | 2022.07.26 |
[SQL 독학] 스토어드 프로시저의 개념과 사용법 (0) | 2022.07.26 |
[SQL 독학] 인덱스 생성/제거 문법 (0) | 2022.07.25 |