触发器
触发器( trigger )用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,当对某张表进行insert. delete、 update操作时就会触发执行它。
#创建触发器语法
CREATE TRIGGER trigger_name trigger._time trigger_event ON table_name FOR EACH ROW trigger_stmt
参数说明:
trigger_name :触发器名称
trigger_time :触发时间,取值有before. after
trigger_event :触发事件,取值有insert. update、 delete
table_name :触发器监控的表名
trigger_stmt :触发执行的语句,可以使用OLD. NEW来引用变化前后的记录内容
NEW.columnName :获取INSERT触发事件中新插入的数据
OLD.columnName :获取UPDATE和DELETE触发事件中被更新、删除的数据
测试数据及需求参见上一讲
drop table if exists user_info;
drop table if exists email_info;
create table user_info(
id int not null auto_increment primary key,
name varchar(30),
email varchar(50)
);
insert into user_info(id, name, email) values(1, 'liusan','[email protected]);
insert into user_info(id, name, email) values(2, '张三,'[email protected]');
create table email_info(
id int not null auto_increment primary key,
email varchar(50),
content text,
send_time datetime
);
触发器的实现
见下图