第五章 触发器
创建触发器
语法:
create trigger 触发器名 before|after 触发事件 on 表名 for each row 执行语句
注:在同一个触发时间只能有一个触发事件,比如insert时间的before只能有一个出发事件
先创建一个trigger_time表:
mysql> create table trigger_time( insert_time datetime);
创建只有一个执行语句的触发器
创建触发器:
mysql> create trigger dept_trig1 before insert on department for each row insert into trigger_time values(now());
这样,当向department表插入一条记录时,就会向trigger_time表插入当前时间。
创建有多个执行语句的触发器
语法:
create trigger 触发器名 before|after 出发事件 on 表明 for each row
begin
执行语句列表
end
注:mysql默认以";"作为结束。在创建触发器的过程中需要用到";",为解决这个问题,可以先使用"delimiter &&"将结束符变成&&,触发器创建后使用"delimiter ;"将结束符变成";"。
mysql> delimiter &&
mysql> create trigger dept_trig2 after delete on department for each row
-> begin
-> insert into trigger_time values(now());
-> insert into trigger_time values(now());
-> end
-> &&
查看触发器
语法:
show triggers;
删除触发器
语法:
drop trigger 触发器名;