触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。
2.1创建只有一个执行语句的触发器
例:创建一个trig_test触发器,该触发器在表t_book插入一条数据后,对表t_bookType的bookNum数量对应的bookTypeId会自动加1
create trigger trig_test after insert
on t_book for each row
update t_bookType set bookNum = bookNum+1 where new.bookTypeId = t_booktype.id;
INSERT INTO t_book VALUES(NULL,'创建只有一个执行语句的触发器',100,'ke',1);
2.1创建有多个执行语句的触发器
DELIMITER | 数据库语句 | DELIMITER;//告诉数据库这时一条语句内容
new old 触发的两个过度变量;new:新增一条语句的新增对象;old:删除一条语句的删除对象;
DELIMITER |
create trigger trig_test2 after delete
on t_book for each row
begin
update t_bookType set bookNum = bookNum-1 where old.bookTypeId=t_booktype.id;
insert into t_log values(null,NOW(),'在book表里添加了一条数据');
delete from t_test where old.bookTypeId = t_test.id;
end
|
DELIMITER ;
DELETE FROM t_book WHERE id=5;
3.1 查看触发器信息
SHOW TRIGGERS;
3.2 在 triggers 表中删除查看触发器信息
DROP TRIGGER trig_test2 ;