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

Mysql触发器

作者头像
Dream城堡
发布2019-02-26 11:29:29
5K0
发布2019-02-26 11:29:29
举报
文章被收录于专栏:Spring相关Spring相关

Mysql触发器

1.创建触发器

注意:触发器只能创建在永久表上,不能对临时表创建触发器,语法如下:

代码语言:javascript
复制
CREATE TRIGGER trigger_name trigger_time trigger_event 
ON table_name FOR EACH ROW trigger_stmt
代码语言:javascript
复制
trigger_time:触发器触发的时间,可以使before或者after,before是指的在检查约束前触发,而after是检查约              束后触发.
trigger_event:触发器触发的事件,可以是insert,update或者delete.
使用别名old和new来引用触发器中发生变化的记录内容,现在触发器还只支持行级触发,不支持语句级触发.
2.创建一个student表,复制一份命名为student_back:
代码语言:javascript
复制
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
3.创建触发器:
代码语言:javascript
复制
delimiter $$
CREATE TRIGGER ins_stu AFTER INSERT ON student FOR EACH ROW
BEGIN
    INSERT INTO student_back (id, NAME, age)
VALUES
    (new.id, new. NAME, new.age) ;
END ;
$$
delimiter ;

插入一条数据:

代码语言:javascript
复制
INSERT INTO student(name,age) VALUES("zhansgan",15);

image.png

代码语言:javascript
复制
//注意:对于有重复记录需要进行update的insert,触发器触发的顺序是before insert , before update ,after update;对于没有重复记录的insert,就是简单地执行insert操作,触发器触发的顺序是before insert,after insert . 对于那些实际执行update操作的记录,仍然会执行before insert触发器的内容,在设计触发器的时候一定要考虑这种情况,避免错误地触发了触发器.
4.删除触发器
代码语言:javascript
复制
drop trigger trigger_name
5.查看触发器
代码语言:javascript
复制
show triggers 
代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mysql触发器
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档