MySQL数据库触发器(trigger)的创建
来源:互联网 发布:java初中高级工程师 编辑:程序博客网 时间:2024/06/04 18:53
`[TOC]
一、触发器介绍
触发器,顾名思义就是通过某个特定的事件来触发另外一个事件,我们把”通过某个特定的事件“称为触发条件,这个条件有INSERT,UPDATE,DELETE,最终触发另外一个事件就是我们具体要数据库操作的步骤。
触发器其是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。
常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。after(for) 表示执行代码后,执行触发器instead of 表示执行代码前,用已经写好的触发器代替你的操作
二、触发器语法
注意:触发条件和触发事件不能作用于同一张表中!
创建一个一条执行语句的触发器:
CREATE TRIGGER 触发器名 [BEFORE/AFTER] [INSERT/UPDATE/DELETE] ON 表名 FOR EACH ROW 执行语句;
创建一个多条执行语句的触发器:
CREATE TRIGGER 触发器名 [BEFORE/AFTER] [INSERT/UPDATE/DELETE] ON 表名 FOR EACH ROW BEGIN 执行语句列表 END;
一般情况下,MySQL默认是以“;”作为结束执行语句。在创建触发器过程中需要用到“;”。为了解决这个问题,可以用DELIMITER语句。如“DELIMITER
&&”,可以将结束符号变成“&&”。当触发器创建完成后,可以用命令“DELIMITER
;”来将结束符号变成“;”。
查看触发器:
SHOW TRIGGERS;
删除触发器:
DROP TRIGGER 触发器名;
三、触发器示例
1.常规触发器
CREATE TRIGGER `UPDATE_WEIXIN_FANS_SEX` AFTER INSERT ON `o_fans_sex` FOR EACH ROWBEGIN UPDATE weixinSET weixin.male_powder = concat( ROUND( ( new.man_count / ( new.women_count + new.man_count + new.unknow_count ) ), 2 ) * 100, '%'), weixin.female_powder = concat( ROUND( ( new.women_count / ( new.women_count + new.man_count + new.unknow_count ) ), 2 ) * 100, '%')WHERE weixin.wxh_name = new.wxh_name;END;
2.一般情况下,MySQL默认是以“;”作为结束执行语句。在创建触发器过程中需要用到“;”。为了解决这个问题,可以用DELIMITER语句。如“DELIMITER
&&”,可以将结束符号变成“&&”。当触发器创建完成后,可以用命令“DELIMITER
;”来将结束符号变成“;”。
创建一个由DELETE触发多个执行语句的触发器dept_trig2。
(1) 创建dept_trig2触发器的SQL代码如下:
DELIMITER &&CREATE TRIGGER dept_trig2 AFTER DELETEON department FOR EACH ROWBEGININSERT INTO trigger_time VALUES('22:30:30');INSERT INTO trigger_time VALUES('23:50:50');END&&DELIMITER ;
- MySQL数据库触发器(trigger)的创建
- MySQL数据库触发器(trigger)
- 学习mysql(6),触发器的创建。trigger
- 触发器Trigger的创建
- mysql触发器trigger的使用
- 数据库触发器(Trigger)的一点使用心得
- 【mysql----触发器trigger的作用及语法】
- MySQL中查看触发器trigger的方法
- 数据库 触发器 trigger 语法
- 数据库CREATE TRIGGER 触发器
- 【转】mysql-trigger-触发器
- TRIGGER:Mysql触发器
- mysql之触发器trigger
- MYSQL触发器(Trigger)
- mysql 之触发器 trigger
- mysql之触发器trigger
- MySQL触发器 trigger学习
- mysql之触发器trigger
- Android-NavigationView+DrawerLayout实现抽屉菜单
- linux学习笔记之系统目录结构
- Mac操作系统输入法快捷键设置
- Hive的数据存储
- Batch Normalization
- MySQL数据库触发器(trigger)的创建
- 软件测试系列之四 单元测试(Junit)
- 记录自己学到东西-2017-08-26
- 拦截器和过滤器的区别
- JqueryUI表格编辑-与后端交互问题
- logistic 回归
- 微信小程序--ajax服务器交互及页面渲染
- Io流——将对象序列化和反序列化
- Apache Security-4 SSL(Security Socket Layer)