MySQL学习(18)︱触发器及实战

什么是触发器

触发器用于监视某种情况触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,当对某张表进行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触发事件中被更新、删除的数据
*/

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

  1. 连接数据库,使用student数据库并查看所有的数据表
USE student;
SHOW TABLES;

效果图:
在这里插入图片描述
2. 查看user_info和email_info所有记录

SELECT * FROM user_info;
SELECT * FROM email_info;

效果图:
在这里插入图片描述
3. 创建触发器

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, '欢迎!', now());
END
//
DELIMITER ;

效果图:
在这里插入图片描述
4. 向user_info表插入一条新纪录

INSERT INTO user_info(id, name, email) VALUES(3, '王五', 'wangwu@qq.com');

效果图:
在这里插入图片描述
5. 查看email_info表,此时已自动向新用户发送了一封邮件

SELECT * FROM email_info;

效果图:
在这里插入图片描述
6. 移除触发器

DROP TRIGGER send_email_trigger;

效果图:
在这里插入图片描述
注:本文是博主MySQL学习的总结,不支持任何商用,转载请注明出处!如果你也对MySQL学习有一定的兴趣和理解,欢迎随时找博主交流~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值