Mysql触发器的简单使用


trigger
进行数据库应用软件开发时,我们有时会碰到表中的某些数据改变,希望同时引起其他相关数据改变的需求,利用触发器就能满足这样的需求。它能在表中的某些特定数据变化时自动完成某些查询。运用触发器不仅可以简化程序,而且可以增加程序的灵活性


触发器是一类特殊的事务,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete)。

监视地点(table)、监视事件(insert/update/delete)、触发时间(after/before)、触发事件(insert/update/delete)

1.  首先创建两个表goods和goods_order


 2. insert

       g_or_1 这是创建的一个添加的insert的触发器。

       在cmd中分号(;)代表着一个语句的结束。所以我们需要用  delimiter // (或者 $)来把结束的符号修改。


    当我们在goods_order表中添加数据的时候,goods表中商品数量会相对的减少。



2. delete

      删除和添加正好是相反的,当我们把goods_order表中的数据删除时,goods表就会恢复原来的数据

     


3.update

     修改这个应用一般是在我们修改购物车的数量时他会进行数据的一个加减,这里没有购物车表,就用订单表来操作,由于goods_order表没有数据,先来添加一点数据。

      接着写一个update的触发器

4.添加数据时,判断商品库存

    当我们在购买商品时都会去判断商品的库存,或者是在购物车修改商品的数量时,判断商品的库存。

    有些商城在你购买商品数量超过库存的时候,它会把最大的商品库存添加到购物车中。在这里只操作一下添加的时候超过库存,购买最大库存。


    这是一个insert触发器,我们需要先把前边的insert触发器给删除,可以使用 drop trigger 触发器名 来删除。

      declare 是mysql中申明一个变量的。查询goods表的时候把库存赋值给变量 num , 用 if 判断来把库存值赋值给goods_order 表中的 by_num(购买数量) 。最后把goods 表中的库存 给修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值