16.触发器

1.简介
触发器(trigger)用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,当对某张表进行insert、delete、update操作时就会触发执行它。

2.语法

create trigger triggerName triggerTime triggerEvent 
on tableName for each row triggerStmt
  • triggerName:触发器名称
  • triggerTime:触发时间,取值有before、after
  • triggerEvent:触发事件,取值有insert、update、delete
  • tableName:触发器监控的表名
  • triggerStmt:触发执行的语句,可以使用old、new来引用变化前后的记录内容
  • new.columnName:获取insert触发事件中新插入的数据
  • old.columnName:获取update和delete触发事件中被更新、删除的数据

3.触发器实战:给新用户发邮件

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, '柳峰', '[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
);

当有新用户插入时,自动给用户发送邮件。

delimiter //
create trigger send_email_trigger after insert on user_info for each row begin
   insert into email_info(email, content, send_time) values(new.email, '欢迎加入MySQL阵营! ', now()); 
end
// 
delimiter ;

猜你喜欢

转载自blog.csdn.net/Jgx1214/article/details/107496217
今日推荐