触发器实现原理

-----触发器实现原理------

触发器:triiger 实现为某张表绑定好一段代码,当表中的默写内容发生改变的时候(增删查改)系统会自动触发代码,执行

触发器的基本要素:事件类型,触发时间 触发对象

事件类型:增删改 insert delete update
触发时间:前后 before 和 after
触发对象:表中的每一条记录(行)

一张表中只能有一种触发时间的一种类型的触发器,最多一张表能有6个触发器

触发器创建事例:


首先创建表


①商品表:
create table my_goods(
id int primary key auto_increment,
name varchar(20) not null,
price decimal(10,2) default 1,
inv int comment '库存数量')charset utf8;

②添加数据
insert into my_goods values(null,'iphone8',5399,100),(null,'vivoX20',8999,100);

③订单表:
create table my_order(
id int primary key auto_increment,
g_id int not null comment '商品id',
g_number int comment '商品数量'
)charset utf8;


命令行运行建表

--触发器:订单生成一个,商品库存减少一个

--临时修改语句结束符
delimiter $$

create triiger after_order after insert on my_order for each row

begin --触发器内容

update my_goods set inv=inv-1 where id=2;

end --触发器结束

$$

delimiter ;


命令行运行 创建触发器成功 =    =

              =

查看触发器:

show triggers;
show triggers\G;

 

查看触发器创建语句:

show create trigger 触发器名称(eg:after_order\G)

注:所有的触发器都存储在一张表中 information_shema.triggers

select * from information_shema.trigger\G

 

posted @ 2017-12-19 11:53  乂沐尐  阅读(2987)  评论(0编辑  收藏  举报