触发器
MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序,触发器是通过事件触发某个操作,这些事件包括INSERT,UPDATE,DELETE语句,当一个数据表上的这些语句执行时,如果定义了相应的触发器,触发器就会执行。触发器也是一种特殊的存储过程。
创建触发器
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
[trigger_order]
trigger_body
trigger_time: { BEFORE | AFTER }
trigger_event: { INSERT | UPDATE | DELETE }
trigger_order: { FOLLOWS | PRECEDES } other_trigger_name
- trigger_name 触发器名
- trigger_time 触发时机
- trigger_event 触发事件
下面例子我们创建了一个触发器。
CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
CREATE TRIGGER ins_sum BEFORE INSERT ON account
FOR EACH ROW SET @sum = @sum + NEW.amount;
注:
- @sum是声明临时变量,这个触发器的作用是用一个临时变量记录
- NEW.amount 官网的说明是这个变量代表新插入的行数
触发器也可以包含多个SQL语句,只要用begin...end
语句块替换上面的单条语句就行了。
查看触发器
show triggers;
删除触发器
drop trigger <triggername>;
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。