触发器的一些新认知

什么是触发器

触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事 件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对 一个表进行操作作(insert,delete, update)时就会激活它执行。

触发器创建的四个要素

 1. 监视地点(table)
 2. 监视事件(insert/update/delete3. 触发时间(before/after
 4. 触发事件(insert/update/delete

创建触发器

1)语法格式

CREATE TRIGGER Trigger_Name -- 触发器名,在一个数据库中触发器名是唯一的
before/after(insert/update/delete-- 触发的时机 和 监视的事件
on table_Name -- 触发器所在的表
for each row -- 固定写法 叫做行触发器, 每一行受影响,触发事件都执行
begin(可选参数,根据mysql版本决定)
-- begin和end之间写触发事
end(可选参数,根据mysql版本决定)

报错信息

系统会报这样的错误:it is already used by statement which invoked this stored function/trigger.

触发器针对同一张表时,不需要写完整的sql语句,只要使用 `set`语句即可(set new.name=a)

系统会报这样的错误: ERROR 1362 (HY000): Updating of NEW row is not allowed in after trigger

触发器不允许在插入数据后(`after`事件),对插入的数据进行更新操作.
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!