触发器
2016-03-14 20:41
381 查看
1.触发器的概念
触发器是个特殊的存储过程,执行存储过程需要使用CALL语句来调用而触发器的执行不需要使用CALL语句调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MYSQL自动调用。触发器可以查询其他表,而且可以包含复杂的SQL语句。它主要用于满足复杂的业务规则或要求。
2.创建触发器
(1)语法:
trigger_name:触发器名字
trigger_time:触发时机:before或者after
trigger_event:触发事件:insert update delete
tb1_name:触发器的表名
trigger_stmt:触发器的程序体,触发器程序可以使begin和end作为开始和结束,中间可以包含多条语句。
3.查看触发器
show triggers语句查看当前创建的所有触发器信息,在触发器少的情况下,使用该语句会很方便。如果要查看特定触发器的信息,可以直接从information_schema数据库中的triggers表中查找。
4.触发器的使用
触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。在某些触发程序的用法中,可用于检查插入到表中的值,或对更新涉及的值进行计算。触发程序与表相关,当对表执行INSERT,DELETE或者UPDATE语句时,将激活触发程序。可以将触发程序设置为在执行语句之前或之后激活。
5.删除触发器
触发器是个特殊的存储过程,执行存储过程需要使用CALL语句来调用而触发器的执行不需要使用CALL语句调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MYSQL自动调用。触发器可以查询其他表,而且可以包含复杂的SQL语句。它主要用于满足复杂的业务规则或要求。
2.创建触发器
(1)语法:
create trigger trigger_name trigger_time trigger_event ON tb1_name FOR EACH ROW trigger_stmt
trigger_name:触发器名字
trigger_time:触发时机:before或者after
trigger_event:触发事件:insert update delete
tb1_name:触发器的表名
trigger_stmt:触发器的程序体,触发器程序可以使begin和end作为开始和结束,中间可以包含多条语句。
3.查看触发器
show triggers;
show triggers语句查看当前创建的所有触发器信息,在触发器少的情况下,使用该语句会很方便。如果要查看特定触发器的信息,可以直接从information_schema数据库中的triggers表中查找。
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE condition;
4.触发器的使用
触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。在某些触发程序的用法中,可用于检查插入到表中的值,或对更新涉及的值进行计算。触发程序与表相关,当对表执行INSERT,DELETE或者UPDATE语句时,将激活触发程序。可以将触发程序设置为在执行语句之前或之后激活。
5.删除触发器
drop trigger[schema_name.]trigger_name 注:mysql5.6
相关文章推荐
- java注释规范
- 广度优先搜索和深度优先搜索—N皇后问题
- linux设备驱动程序注册过程详解
- Poj-3278
- javascript实现查看html网页放大图片功能
- 关于Eclipse使用OkHttp
- 项目2:本月有几天?
- 火药,X射线和青霉素的发现
- android 学习之ExpandableListView
- 局部排序
- java ee环境搭建
- LINUX下JNI封装 C++动态链接库
- AbstractQueuedSynchronizer分析
- hust 数字变化
- 解决RegexKitLite编译报错
- HTTP协议状态码详解
- 关于this的使用
- 2659: [Beijing wc2012]算不出的算式
- Java I/O库中设计模式的应用
- 使用hugo搭建博客