触发器的一些新认知
什么是触发器
触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事 件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对 一个表进行操作作(insert,delete, update)时就会激活它执行。
触发器创建的四个要素
1. 监视地点(table)
2. 监视事件(insert/update/delete)
3. 触发时间(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 协议》,转载必须注明作者和本文链接
推荐文章: