Trigger
- 촉발하다 == callback
delimiter $$
create trigger 트리거명
{ befor | after } { insert | update | delete }
on 테이블명
for each row
begin
쿼리문
end $$
delimiter ;
예제)
-- 저장 (검사) 테이블
create table dept_update(
oldname varchar(30),
newname varchar(30)
);
trigger 를 검사하는 테이블 생성
delimiter $$
create trigger trigger_test
before update
on departments
for each row
begin
insert into dept_update(oldname, newname) values(old.department_name, new.department_name);
end $$
delimiter ;
update 하기 전(before)에 trigger가 발생. begin - end 까지의 코드를 실행한다. ( 해당 예제에서는 insert문 )
old.department_name, new.department_name은 mysql에서 제공하는 trigger 변수
update departments set department_name = '총괄본부' where department_id = 300;
select * from dept_update;
'DB' 카테고리의 다른 글
[MySQL] Sequence (0) | 2022.06.21 |
---|---|
[MySQL] Function (0) | 2022.06.21 |
[MySQL] 제어문, Cursor (0) | 2022.06.21 |
[MySQL] PL (0) | 2022.06.21 |
[MySQL] View (0) | 2022.06.20 |