mysql学习七:触发器
触发器:是由事件来触发某个操作。这些事件包括insert语、update语句,delete语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作
一、创建与使用触发器:
1.创建触发器:
create trigger 触发器名称 before|after 触发事件 on 表名 for each row 执行语句;
create trigger trig_book after insert on book for each row update bookType set bookNum=bookNum+1 where new.bookTypeId=bookType.id;
过渡变量new:是指新插入、更新的那条数据
过渡变量old:是指删除的那条数据
insert into book values(null, 'java nice', 100, 'xy', 1); select * from book; select * from bookType;
2.创建有多个执行语句的触发器
新建示例表:
create table bookLog (id int, actionTime DATE, actionContent varchar(255) ); create table bookTest (id int, text varchar(300) ); insert into bookTest values(2, 'abc');
创建多个执行语句的触发器:
delimiter | create trigger trig_book2 after delete on book for each row begin update bookType set bookNum=bookNum-1 where old.bookTypeId=bookType.id; insert into bookLog values (null, NOW(), '在book表里删除了一条数据'); delete from bookTest where old.bookTypeId=bookTest.id; end | delimiter;
分号结束的语句,在sql里就是执行;因此这里需要加一个delimiter |..........| delimiter; 使得不要遇到分号就执行里面的语句。
delete from book where id=3; select * from bookType; select * from booklog; select * from booktest;
执行第一条语句delete之后,将触发触发器
第二条语句,查看结果:bookType中计数已减1
第二语句,查看结果:bookLog中插入了一条记录
第三条语句,查看结果:bookTest表中删除了booktest.id=old.bookTypeId的记录
二、查看触发器:
show triggers;
或者在triggers表中查看
三、删除触发器:
drop trigger trig_book; drop trigger trig_book2;
posted on 2018-09-16 14:12 myworldworld 阅读(111) 评论(0) 收藏 举报