在数据表中发生了某件事(插入、删除、更新 *** 作),然后自动触发了预先编好的若干条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 | 在…之后 |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)