Programming/SQL

[SQL/실습] 트리거

reeme 2021. 1. 29. 13:42

-- 트리거 생성
-- TR1 테이블에서 삭제하기 전에 삭제한 레코드를 TB2 테이블에 추가하는 트리거 작성

DELIMITER //
create trigger tri_tr
BEFORE DELETE -- UPDATE AFTER 테이블명 트리거내용 순서대로 업데이트후에 테이블에 트리거내용대로 해라
ON tr1 FOR EACH ROW 
BEGIN;

-- 트리거 내용

insert into tr2(number, name, age) 
values(old.number, old.name, old.age) ;
END // -- tr1에있는것을 실행하면 트리거 내용이 자동 실행된다 라는 뜻 : 빽업 작업
DELIMITER ;
show triggers ; 
-- drop trigger tri_tr1;
-- show triggers;
delete from tr1;
select * from tr1;
select * from tr2;

-- 트리거 실습을 위한 테이블 생성

CREATE TABLE TR1(
NUMBER VARCHAR(4) PRIMARY KEY,
NAME VARCHAR(4),
AGE INT 
);
CREATE TABLE TR2(
NUMBER VARCHAR(4) PRIMARY KEY, -- 무결성때문에 프라이머리키를 준것임 중복되면 안되니까
NAME VARCHAR(4),
AGE INT 
);
INSERT INTO TR1(NUMBER,NAME,AGE) VALUES('A101','리쯔웨이',18);
INSERT INTO TR1(NUMBER,NAME,AGE) VALUES('A102','모쥔제',18);
INSERT INTO TR1(NUMBER,NAME,AGE) VALUES('A103','천윈루',18);
SELECT * FROM TR1;

-- TR1테잉블에서 삭제한 레코드를 TB2테이블에 추가하는 트리거 작성