MySQL触发器使用教程

 2024-02-27 04:02:46  阅读 0

下面主要为大家带来MySQL触发器的使用教程。 希望这些内容能给大家带来实际的用处。 这也是编辑这篇关于MySQL触发器使用教程的主要目的。 好了,废话不多说,我们来看看下面的内容吧。

MySQL 包括对触发器的支持。 触发器是与表操作相关的数据库对象。 当触发器所在的表发生指定事件时,会调用该对象,即表的操作事件触发触发器对该表的执行。

创建触发器

在MySQL中,创建触发器的语法如下:

代码如下所示:

mysql 触发器中表_mysql触发器ifelse_mysql触发器语句

对于每一行

在:

:标识触发器名称,由用户指定;

:标识触发时间,值为 或 AFTER;

:标识触发事件,取值为,或者;

:标识创建触发器的表名,即在哪个表上创建触发器;

:触发​​器程序体,可以是一条SQL语句,也可以是BEGIN和END中包含的多条语句。

可以看到可以创建6种类型的触发器,分别是: , , , AFTER , AFTER , AFTER 。

另一个限制是不能同时在一张表上创建两个相同类型的触发器,因此一张表上最多可以创建6个触发器。

详细解释

MySQL除了定义了 、 、 等基本操作外,还定义了 LOAD DATA 和 语句。 这两条语句也可以引起上述6种触发器的触发。

LOAD DATA语句用于将文件加载到数据表中,相当于一系列操作。

语句一般和语句很相似,只不过当表中有键或者索引时,如果插入的数据与原来的键或者索引一致,那么会先删除原来的数据,然后再添加一条新的数据,即一个陈述,有时它相当于一个。

一条语句有时相当于一条语句加一条语句。

类型触发器:插入行时激活触发器,可能由LOAD DATA语句触发;

类型触发器:当某一行发生改变时触发触发器,可能由一条语句触发;

类型触发器:当删除某行时激活触发器,可能由 or 语句触发。

BEGIN … END 详细解释

在 MySQL 中,BEGIN ... END 语句的语法为:

开始

[]

结尾

其中, 代表一个或多个语句的列表。 列表中的每个语句都必须以分号 (;) 结尾。

在MySQL中,分号是语句结束的标识符。 遇到分号表示该语句已经结束,MySQL可以开始执行。 因此,解释器在遇到 in 的分号后开始执行,然后报错,因为没有找到 END 匹配的 BEGIN。

这时候就用到了命令(是,分隔符的意思)。 它是一个命令,不需要语句结束标识符。 语法是:

可以设置为一个或多个长度符号。 默认为分号 (;)。 我们可以将其改为其他符号,例如$:

$

此后的语句以分号结束,解释器不会做出反应。 只有遇到$时,才认为语句结束。 注意,使用完后一定要记得修改回来。

创建触发器的完整示例

假设系统中有两张表:

班级表班级(班级号、班级学生人数)

学生表(学号stuID、班级号)

创建一个触发器,在添加学生时自动更新班级表中的学生人数,代码如下:

代码如下:下载地址++集成SSM

$

每行打开

开始

c 整数;

设置 c =(来自 =new 的类。);

类集 = c + 1 其中 = new.;

结束$

;

变量详细解释

在 MySQL 中用于定义局部变量。 该变量只能在 BEGIN...END 复合语句中使用,并且应在复合语句的开头定义。

也就是说,在其他语句之前,语法如下:

[,...] 类型 [值]

在:

是变量名,与SQL语句相同,变量名不区分大小写; type 是 MySQL 支持的任何数据类型; 可以同时定义多个相同类型的变量,用逗号分隔; 变量的初始值为NULL,如果需要,可以使用子句提供默认值。 该值可以指定为表达式。

SET语句用于给变量赋值,语法为:

SET = 表达式 [, = 表达式] ...

新旧详细解释

上面的例子中使用了NEW关键字,它与MS SQL中的and类似。 MySQL中定义了NEW和OLD来表示

触发器所在表中触发触发器的数据行。

具体来说:

在类型触发器中,NEW用于表示将要插入()或已经插入(AFTER)的新数据;

在类型触发器中,OLD用于表示将要或已经被修改的原始数据,NEW用于表示将要或已经被修改的新数据;

在类型触发器中,OLD用来表示将要或已经被删除的原始数据;

用途:新。 (是对应数据表的列名)

另外,OLD是只读的,而NEW可以在触发器中使用SET赋值,这样就不会再次触发触发器,造成循环调用(比如插入学生之前,在其学号前加上“2013”​​) )。

查看触发器

与查看数据库(show ;)和查看表(show ;)一样,查看触发器的语法如下:

显示[来自];

其中,名称与MySQL中相同,即可以指定数据库名称,这样

无需“使用;” 第一的。

删除触发器

就像删除数据库或删除表一样,删除触发器的语法如下:

删除 [如果] [.]

触发执行顺序

我们构建的数据库一般是数据库,在其上构建的表是事务表,是事务安全的。 此时,如果SQL语句或触发器执行失败,MySQL将会回滚事务,包括:

①如果触发器执行失败,SQL就无法正确执行。

②当SQL执行失败时,AFTER触发器不会触发。

③如果AFTER类型触发器执行失败,SQL会回滚

您是否觉得以上关于使用 MySQL 触发器的教程非常有帮助? 如果您需要了解更多,请继续关注我们的行业资讯。 我相信您会喜欢其中的内容。

标签: 触发 语句 变量

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码