MYSQL是在5.0以后的版本中引入触发器的。
有的时候,可以用触发器来维护数据的完整性。如我有一个表ge_element,该表中有一个region_id,对应到ge_region表中的id,但是,region_id是可以为空的,所以不应该设置外键约束,而我在删除ge_region表中的记录时,希望把在ge_element表中被引用到的记录的region_id设为0,因为没有数据库的外键约束,我只能在程序中操作,但我又不想通过程序来操作,因为引用region_id的表可能不只ge_element一个,这时,就可能用到触发器,在删除ge_region表中的记录时,把被引用的表中的region_id设为0。
1.创建触发器的语句:
CREATE TRIGGER <触发器名称> <--
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
<触发器SQL语句>
触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.
这里我有个习惯:就是用表的名字+'_'+触发器类型的缩写.因此如果是表t26,触发器是在事件UPDATE(参考下面的点(2)和(3))之前(BEFORE)的,那么它的名字就是t26_bu。
可以直接在EMS中创建触发器。
2.触发时间:
Before表示在事件发生之前执行触发器,After表示在事件发生之后执行触发器;
3.触发事件:
三个事件:insert, update, delete
4.触发器与表的关系:
触发器是属于一个表的,当在这个表上执行insert, update, delete操作时,就会导致相应的触发器被激活;
不能给同一个表的同一个操作创建两个不同的触发器。
5.触发间隔:
FOR EACH ROW 子句通知触发器每隔一行执行一次动作,而不是对整下表执行一次。
6.触发的SQL语句:
触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句,包括复合语句,但是这里的语句受的限制和函数的一样。
复合语句(BEGIN / END)是合法的.
流控制(Flow-of-control)语句(IF, CASE, WHILE, LOOP, WHILE, REPEAT, LEAVE,ITERATE)也是合法的.
变量声明(DECLARE)以及指派(SET)是合法的.
允许条件声明.
异常处理声明也是允许的.
但是在这里要记住函数有受限条件:不能在函数中访问表.因此在函数中使用以下语句是非法的。
7.创建触发器的权限:
你必须要有相当大的权限才能够创建触发器;我在创建触发器的时候提示要有super privilege才可以创建;
分享到:
相关推荐
触发器是与表有关的数据库对象,在对表进行insert/update/delete之前或之后,会触发并执行触发器中定义的SQL语句。触发器的这种特性可以协助应用在数据库端确保数据的完整性,记录日志,校验数据等。
mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql...
主要介绍了mysql触发器之触发器的增删改查操作,结合实例形式分析了mysql触发器的定义及使用触发器进行增删改查等相关操作技巧,需要的朋友可以参考下
内包含外键约束模式,数据库的视图基本操作
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...
介绍了mysql触发器的一些概念及一些使用案例
该抛弃旧的MySQL的手册了我在这里警告大家不要相信过去的MySQL手册中所说的了。我们已经去掉了关于触发器的错误的语句,但是仍旧有很多旧版本的手册在网上,举个例子,这是一个德国的Url上的: ...
MySQL 5.0 触发器
MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!
举例:论坛的发帖,每插入一个帖子都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,这时使用触发器效率会很高。 二、Oracle 使用 PL/SQL 编写触发器 1.–PL/SQL创建触发器的一般语法 create [or ...
以下是针对MySQL数据库的60个面试题,涵盖了数据库设计、SQL查询、性能优化、...16. 如何在MySQL中使用触发器(Trigger)? 17. 解释存储过程和它的优缺点。 18. 如何用SQL更新同一表内的两个列的值? 19. 解释如何使用
MySQL触发器.pdfMySQL触发器.pdfMySQL触发器.pdfMySQL触发器.pdf
两部分组成: 触发器事件发生的时间—–是在监听的表的行为 after before 常用的是after 触发器执行的内容:增删改 创建order 表的时候,需要注意,因为order在mysql中是一个关键字排序,为了避免错误的发生,我们...
在SQL中,名词触发器指“在数据库中为响应...在本文中将简单介绍如何定义并使用触发器,查看触发器状态,并如何在使用完毕后删除触发器。还将为你展示一个触发器在现实世界中的应用实例,并检验它对数据库记录的改变。
MySQL触发器
mysql事件,触发器,事务
mysql com组件触发器代码备着急用
学习mysql触发器的好东西