MySQL中触发器和游标的介绍和使用
  • 作者:admin
  • 发表时间:2021-03-20 07:51
  • 来源:未知

本文主要介绍MySQL中触发器和游标的相关信息。通过实例代码详细介绍,对大家的学习或工作有一定的参考学习价值。需要它的朋友将和边肖一起学习。

触发器简介

触发器是与表相关联的特殊存储过程,当在表中插入、删除或修改数据时,它可以触发执行。它具有比数据库本身的标准功能更精细、更复杂的数据控制能力。

触发器的优点:

安全性:基于数据库的价值,用户可以拥有一定的权限来操作数据库。比如工作和节假日后不允许修改数据库的数据;

审计:可以跟踪用户对数据库的操作;

实现复杂的数据完整性规则。例如,一个触发器可以回滚任何试图吃掉超过自己保证金的期货;

提供运行计划任务的另一种方式。比如公司账户中的资金少于5万元,会立即向财务人员发送预警数据。

MySQL中使用的触发器

创建触发器

创建触发器的诀窍是记住触发器的四个元素:

监控位置:表格;

监控事件:插入/更新/删除;

触发时间:后/前;

触发事件:插入/更新/删除。

创建触发器的基本语法如下:

Trigger_name:触发器的名称;

Tirgger _ time:触发时间,BEFORE或AFTER;

Trigger_event:触发事件,为INSERT、DELETE或UPDATE;

Tb_name:表示创建触发器的表的名称,以及创建触发器的表;

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

对于唐山网站设计来说,每一行都意味着对记录的任何操作都会触发触发事件。

注意:同一表中同一触发时间的同一触发事件只能定义一个触发器。

触发器新旧记录

MySQL定义了新的和旧的,用来表示触发器所在的表中的数据行:

在插入触发器中,“新”用于指示在之前或之后插入新数据。

在UPDATE触发器中,OLD用于表示待修改或已修改的原始数据,NEW用于表示待修改或已修改的新数据;

在DELETE触发器中,OLD用于指示将要或已经删除的原始数据。

创建一个触发器,当用户购买商品时,同时更新相应的商品库存记录。代码如下:

创建触发器。当用户删除订单时,相应的商品库存记录同时更新。代码如下:

before 和 after 的区别

在执行语句之前,在执行语句之后

当订单数量超过库存时,将订单数量修改为最大库存:

游标

游标简介

游标用于遍历查询数据库返回的记录,以便执行相应的操作。游标具有以下特征