展开全部

数据库中触发器before与after认识

Before与After区别:

before:(insert、update)可以对new进行修改;after不能对new进行修改,两者都e68a84e8a2ad3231313335323631343130323136353331333363386161不能修改old数据。

before是先完成触发,再增删改,触发的语句先于监视的增删改,这样就有机会判断,修改即将发生的操作;

after是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作;也就是说先插入订单记录,再更新数量;

示例:

商品表g和订单表o和触发器

假设商品表有商品1,数量是10;

在订单表插入一条记录insert into o(gid,much) values(1,20);

如果创建的触发器是after,则会发现在执行这个语句后,商品1的数量变成了-10。

也就是说触发的语句是在插入订单记录之后才执行的,这个时候是无法判断新插入订单的购买数量。

运用典型案例来区分二者的区别,新建一个触发器:

#监视地点: 商品表o

#监视事件:insert

#触发时间:before

#触发事件:update

案例:当新增一条订单记录时,判断订单的商品数量,如果数量大于10,就默认改为10create trigger tg6

before insert on o

for each row

begin

if new.much > 10 then

set new.much = 10;

end if;

update g set num = num - new.much where id = new.gid;

end$

执行完,把之前创建的after触发器删掉,再来插入一条订单记录:insert into o(gid,much) valus(1,20)$

执行完会发现订单记录的数量变为10,商品1的数量变为0了,就不会出现负数了

mysql 触发器 before_mysql之触发器before和after的区别相关推荐

  1. MySQL数据库提升篇-----触发器

    day06 MySQL数据库提升篇-----触发器 一.触发器概述: 触发器是什么?能有什么作用?能给我们带来什么样的操作数据库的方法这都在这里学一一的告诉大家.触发器原理类似于扳机的原理,当你一点击 ...

  2. 在实际使用中 mysql所支持的触发器有_计算机二级考试MySQL数据库每日一练 12月26日...

    1.使用SELECT将表中数据导出到文件,可以使用哪一子句?D A.TO FILE B. FILE C.OUTTO FILE D. 2.存储程序中不是循环语句是( ) A.REPEAT B.WHILE ...

  3. (2.13)Mysql之SQL基础——触发器

    (2.13)Mysql之SQL基础--触发器 关键词:Mysql触发器 二.触发器 MySQL语句在需要时被执行,存储过程也是如此,如果希望某条语句(或某些语句)在事件发生时自动执行,这就需要用到触发 ...

  4. mysql 数据库学习(触发器)

    引用:http://bbs.mysql.cn/thread-9135-1-2.html 引用:21. 触发程序 create table a (sa int); create table b (sb ...

  5. 在实际使用中 mysql所支持的触发器有_2016计算机二级MySQL冲刺题及答案

    2016计算机二级MySQL冲刺题及答案 11[简答题] 请使用UPDATE语句将数据库db_test的表content中留言人姓名为"MySQL初学者"的留言内容修改为" ...

  6. MySql的存储过程和触发器

    Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数. 创建存储过程(procedure)时,因为其内部有以; ...

  7. mysql 触发器 lod_MySQL--初探触发器的使用和理解

    本篇文章分三步介绍触发器: 1.触发器是什么 2.创建触发器 3.使用触发器 1.触发器是什么? 一类特殊的数据库程序,可以监视某种数据的操作(insert/update/delete),并触发相关的 ...

  8. Mysql定义DELETE操作触发器,将删除数据存入历史表

    Mysql定义DELETE操作触发器,将删除数据存入历史表 SQL如下: // An highlighted blockDELIMITER $$ CREATE TRIGGER <触发器名称> ...

  9. MySQL——超详细数据库触发器教程

    目录 一.触发器的概念 二.创建触发器 三.查看触发器 四.删除触发器 总结 一.触发器的概念 在实际开发中往往会碰到这样的情况: 当我们对一个表进行数据操作时,需要同步对其它的表执行相应的操作,正常 ...

最新文章

  1. C++ Code_ImageList
  2. 类会默认产生的成员函数
  3. 以下哪些是oracle预定义角色,Oracle中预定义角色有哪些?
  4. python 学习 [day6]
  5. asp.net MVC ViewData详解
  6. 公司行政的未来在哪里?要不要转行?
  7. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·009【多表连接查询】
  8. 计算机语言入门vfp,VFP基础教程第二章VFP语言基础3
  9. 带grub的软盘镜像制作
  10. fastboot 使用详解
  11. PDF查看器之pdfvuer
  12. RuntimeError: Expected 4-dimensional input for 4-dimensional weight [32, 1, 5, 5]
  13. 黑色脸谱_上演三幕的脸谱剧
  14. Android文件实现选择打开方式
  15. python cherry 用法
  16. 第十九章 Caché 函数大全 $INCREMENT 函数
  17. 更好地提问ChatGPT_常用prompt表
  18. 银行转账带来的死锁问题
  19. 多媒体计算机系统有何特征,多媒体的特点主要包括哪些?
  20. opencv - 简介

热门文章

  1. 初识C++与Visual Studio(3)——解决方案资源管理器及常用项目属性介绍
  2. element-ui clearFiles方法使用
  3. SpringBoot中Aop失效解决办法
  4. TYZ 8/22 人品问题
  5. Unity接入日志插件Log4Net
  6. 五、概率和临界值即随机数的产生
  7. Charm-crypto的安装与使用
  8. java abstract 变量_Java基础知识详解:abstract修饰符
  9. GRU(Gated recurrent unit)
  10. 基于SpringBoot集合Mybatis的增删改查实现,通过postman测试(1)