MySQL 触发器
Posted 落叶成冰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 触发器相关的知识,希望对你有一定的参考价值。
查看触发器
show triggers;
删除触发器
drop trigger [if exists] [schema_name.]trigger_name;
修改触发器
触发器不能被更新或者覆盖,若要修改,则需先删除然后再创建。
创建触发器
create trigger TRIGGER_NAME
after | before -- 触发时间
insert | update | delete -- 监视操作
on TBL_NAME -- 监视哪个表
for each row -- 行级触发器
begin
statement;
...
end;
监视的操作:
insert | update | delete
触发的操作:
insert | update | delete
触发器中可以使用的行变量:
insert: new.COLUMN_NAME
update: new.COLUMN_NAME 或者 old.COLUMN_NAME
delete: old.COLUMN_NAME
注意:
1. 只有表支持触发器,视图、临时表均不支持
2. 每个表最多能创建 6 个触发器,[ after | before ] X [ insert | update | delete ]
3. 对于 before 类型的触发器, 如果 before 触发器执行失败, 则触发触发器的 SQL 也会执行失败
4. 若 SQL 执行失败, 则 after 型的触发器不会执行
5. 对于事务性表 ( InnoDB 引擎), 如果触发器中的 SQL 或者引发触发器的 SQL 执行失败, 则事务会回滚. 对于非事务
性表, 即使语句失败, 失败之前所做的任何修改依然有效.
以上是关于MySQL 触发器的主要内容,如果未能解决你的问题,请参考以下文章