本文主要介绍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 的区别
在执行语句之前,在执行语句之后
当订单数量超过库存时,将订单数量修改为最大库存:
游标
游标简介
游标用于遍历查询数据库返回的记录,以便执行相应的操作。游标具有以下特征