mysql触发器的概念:
触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。
一、作用:
在对表操作进行增删改的时候可以对另一张表进行指定的操作,比如说在给学生表添加信息时,在日记表中自动添加一条学生表添加了一条数据,并记录添加时间与操作者得ip地址后其他信息
触发器的操作有三种,创建,查看,删除,因为触发器无法修改,只能通过删除之前的触发器在进行从新创建,所以无法修改。
二、触发器语法:
Create trigger triggerName 触发时机(before(前)||afert(后) 事件(insert||update||delete) on 表名 for each row sql语句;
1、触发器的创建:
create trigger `insert_order_trigger`
after INSERT on aff_order
for EACH ROW
BEGIN
insert into aff_order_detail(order_id,order_nu)values (new.id,new.order_nu);
END
创建一个名为insert_order_trigger的触发器 在aff_order表增加一条数据后触发, 在aff_order_detail表增加一条数据
new.id 为order表中的新增加的id,order_nu为新增加的订单的订单号
2、触发器的删除:
create trigger `delete_order_trigger`
after DELETE on aff_order
for EACH ROW
BEGIN
delete from aff_order_detail where id=old.id;
END
创建一个名为delete_order_trigger的触发器 在aff_order表删除一条数据后触发, 在aff_order_detail表删除一条数据 where是id= insert_order_trigger表中所删除前的数据的id
old.id order表删除前的id
3、触发器的修改:
create trigger `update_order_trigger`
after UPDATE on aff_order
for EACH ROW
BEGIN
UPDATE from aff_order_detail SET 字段名=新值 where id=old.id;
END
创建一个名为update_order_trigger的触发器 在aff_order表修改一条数据后触发 在aff_order_detail表修改一条数据 where是id= insert_order_trigger表中所修改前的数据的id
old.id 修改前order表的id
三、删除触发器:
使用drop
Drop trigger 触发器名称
触发器删除就是这样
Drop trigger tri_insert;