mysql触发器如何写

  介绍

这篇文章主要介绍了mysql触发器如何写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

触发器是与mysql数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。

<强>语法格式如下:

创建& lt;触发器名比;& lt;比之前|之后;   & lt;插入|更新|删除比;   & lt;表名的在每个Row<触发器主体在

<强>语法说明如下。

<强> 1)触发器名

触发器的名称,触发器在当前数据库中必须具有唯一的名称。如果要在某个特定数据库中创建,名称前面应该加上数据库的名称。

<强> 2)插入|更新|删除

触发事件,用于指定激活触发器的语句的种类。

<强>注意:三种触发器的执行时间如下.INSERT:将新行插入表时激活触发器。例如,插入前的触发器不仅能被MySQL的插入语句激活,也能被加载数据语句激活DELETE:从表中删除某一行数据时激活触发器,例如删除和替换语句.UPDATE:更改表中某一行数据时激活触发器,例如更新语句。

<强> 3)|在

之前和之后,触发器被触发的时刻,表示触发器是在激活它的语句之前或之后触发。若希望验证新数据是否满足条件,则使用之前选项,若希望在激活触发器的语句执行之后完成几个或更多的改变,则通常使用后选项。

<强> 4)表名

与触发器相关联的表名,此表必须是永久性表,不能将触发器与临时表或视图关联起来。在该表上触发事件发生时才会激活触发器。同一个表不能拥有两个具有相同触发时刻和事件的触发器。例如,对于一张数据表,不能同时有两个更新之前触发器,但可以有一个更新之前触发器和一个之前插入触发器,或一个之前更新触发器和一个更新后触发器。

<强> 5)触发器主体

触发器动作主体,包含触发器激活时将要执行的MySQL语句。如果要执行多个语句,可使用开始…结束复合语句结构。

<强> 6)为每一行

一般是指行级触发,对于受触发事件影响的每一行都要激活触发器的动作,例如,使用插入语句向某个表中插入多行数据时,触发器会对每一行数据的插入都执行相应的触发器动作。

<强>注意:每个表都支持插入、更新和删除之前与之后的,因此每个表最多支持6个触发器。每个表的每个事件每次只允许有一个触发器。单一触发器不能与多个事件或多个表关联。

另外,在MySQL中,若需要查看数据库中已有的触发器,则可以使用显示触发语句。

<强>例子:

开始   如果新。州(& # 39;2 & # 39;& # 39;3 & # 39;)   插入“userservice”。“ehome_us_green_examine”   (modifyuser modifydate brancCode stateDescription,状态,   userID, fromSystemkey applydate、makeHospitalName illnessName,   用户名、rightsholderName tranno)   值(sysdate() & # 39;管理# 39;,老了。brancCode,老了。stateDescription new.state,   & # 39;& # 39;old.fromSystemkey, old.applydate, old.makeHospitalName, old.illnessName,   old.userName,老了。rightsholderName old.tranno);   如果;   结束

<强>这个触发器比较简单,

1,开始到结束,之间是对数据库的操作

2,如果到最后之间是判断,你想的对,就是如果…的意思

3,新的。国家,(& # 39;2 & # 39;& # 39;3 & # 39;)这句的意思是:该表的字段状态为(2或3者)的时候

4,执行下面的插入语句,新为新值,旧的是原来的值(如老了。用户名就是原来的这个字段的值)

5,整个触发器翻译成白话就是,如果该表的状态变成2或3者的时候,执行下面的插入语句

备注:那么触发器是发生在状态变化之前还是之后呢?选前或者之后,顾名思义。

感谢你能够认真阅读完这篇文章,希望小编分享mysql触发器如何写内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!

mysql触发器如何写