前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三十八、触发器实战

三十八、触发器实战

作者头像
喵叔
发布2021-07-06 11:56:02
1310
发布2021-07-06 11:56:02
举报
文章被收录于专栏:喵叔's 专栏喵叔's 专栏
一、什么是触发器

触发器(trigger)用于监视某种情况并触发某种操作,它是与表时间相关的特殊存储过程。它的执行不是由程序调用,而是由事件来触发的。它只会在对某张表进行 insert、delete 和 update 操作时执行。语法如下:

代码语言:javascript
复制
create trigger trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_stmt

参数:

  1. trigger_name:触发器名称;
  2. trigger_time:触发时间,取值:before、after;
  3. trigger_event:触发事件,取值:insert、update、delete;
  4. table_name:触发器监控的表;
  5. trigger_stmt:触发执行的语句,使用 OLD、NEW 来引用变化前后的记录。NEW.columnName:获取 insert 触发事件中新插入的数据; OLD.columnName:获取 update 和 delete 触发事件中被更新、删除的数据。
二、触发器实战
  1. 创建用户表和发件箱表:
代码语言:javascript
复制
create table users(
    id int not null auto_increment  primary key,
    name varchar(30),
    email varchar(30)
);
create table emails(
     id int not null auto_increment  primary key,
     email varchar(30),
     content text.
     send_datetime datetime
);
  1. 编写触发器,在新增新用户的时候向发件箱插入一条邮件:
代码语言:javascript
复制
delimiter //
create trigger add_email after insert on users for each row
begin
    insert into emails(email,content,send_datetime) values (NEW.email,'hello' ,now());
end
//
delimiter ;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是触发器
  • 二、触发器实战
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档