基本概念
触发器(trigger)是MySQL语句响应以下任意语句而自动执行的一条MySQL语句(或位于begin和and之间的一组语句):
- delete
- insert
- update
其他语句不止触发器。
只有表支持触发器,视图和临时表都不支持。
创建触发器
在创建触发器时,需要:
- 定义触发器名;
- 定义触发器关联的表;
- 定义触发器响应的活动;
- 定义触发器何时执行(处理之前或之后);
create trigger trigger_name before/after insert/delete/update on table_name for...'
触发器名必须保持在每个表中唯一,但不要求在一个数据库中唯一。
触发器按每个表每个时间每次地定义,每个表每个事件每次只允许定义一个触发器。因此,每个表最多支持6个触发器(insert,delete和update的之前和之后)。
如果before触发器失败,那么MySQL不会执行请求的操作。如果before触发器或者语句本身失败,则不执行after触发器。
删除触发器
drop trigger trigger_name;
使用触发器
create trigger neworder after insert on orders
for each row select NEW.order_num into @aaa;
insert into orders(order_date,cust_id) values(Now(),10001);
select @aaa;
网友评论