触发器
一、什么是触发器
在数据表中发生了某件事(插入、删除、更新操作),然后自动触发了预先编好的若干条SQL语句的执行。
二、触发器的特点及作用
特点: 触发事件的操作和触发器里面的SQL语句是一个事物操作,具有原子性,要么全部执行,要么都不执行。比如:银行转账。
作用: 保证数据的完整性,起到约束作用。
三、创建触发器语句
语法
CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW [trigger_order]
trigger_body
说明
Trigger_time: 触发器执行时间: AFTER | BEFORE
Trigger_event: 触发器触发的事件: INSERT | UPDATE | DELETE
FOR EACH ROW: 表示任何一条记录上的操作满足触发事件都会触发该触发器
Table_name: 表示触发事件操作表的名字
Trigger_body: 创建触发器的SQL语句
四、查看存储器
SHOW TRIGGERS;
SHOW CREATE TRIGGER trigger_name;
五、NEW和OLD的应用
MySQL 中定义了 NEW
和 OLD
两个临时表,用来表示触发器的所在表中,触发了触发器的哪一行数据,来引用触发器中发生变化的记录内容,具体地:
① 在 INSERT
型触发器中,NEW
用来拦截并保存将要(BEFORE)或已经(AFTER)插入的新数据;
② 在 UPDATE
型触发器中,OLD用来拦截并保存将要或已经被修改的原数据,NEW
用来拦截并保存将要或已经修改为的新数据。
③ 在 DELETE
型触发器中,OLD
用来拦截并保存将要或已经被删除的原数据。
六、删除触发器
DELETE TRIGGER trigger_name;
七、触发器术语
英文 | 中文 |
---|---|
create | 创建 |
trigger | 触发器 |
drop | 删除 |
before | 在…之间 |
insert | 插入 |
update | 输出 |
delete | 删除 |
after | 在…之后 |