DB
[MySQL] Trigger
명주_^
2022. 6. 21. 14:04
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;
