爆仓怎么办:

用sql的判断语句,就像某某语言一样!

/*
之前一些语句:declare xx int/char。。   这个是声明变量if xxx then xyxyend if;    if语句
*/create trigger t2
after
insert
on ordz
for each row
begin update goods set number = number-new.gid where gid = new.number;  // new
end $-- t2基础上,完成much 和 num判断delimiter $
create trigger t5
after
insert
on ordz
for each row
begin declare rnum int;# 判断select number into rnum from goods where gid = new.gid;if new.much > rnum then set new.much = rnum;end if;update goods set number = number-new.much where gid = new.gid;  end $#  报错:ERROR 1362 (HY000): Updating of NEW row is not allowed in after trigger   #  说是不能在语句after之后 在搞#  得在语句执行前面诶 before#  应该在生米煮成熟饭之前搞create trigger t5
before
insert
on ordz
for each row
begin   declare rnum int;# 判断select number into rnum from goods where gid = new.gid;if new.much > rnum then set new.much = rnum;end if;update goods set number = number-new.much where gid = new.gid;
end $+-----+------+--------+
| gid | name | number |
+-----+------+--------+
|   1 | cat  |     20 |
|   2 | dog  |     20 |
|   3 | pig  |     20 |
+-----+------+--------+insert into ordz values(5,3,50); #  50头猪+-----+------+--------+
| gid | name | number |
+-----+------+--------+
|   1 | cat  |     20 |
|   2 | dog  |     20 |
|   3 | pig  |      0 |
+-----+------+--------++-----+------+------+
| oid | gid  | much |
+-----+------+------+
|   5 |    3 |   20 |
+-----+------+------+
只是下了20头猪, 没有多余的啦~~~~

完成!  多看手册!!!

for each row 是什么?

行级触发器?

语句级触发器?


# 触发器的  for each row  是什么?
触发器分为:语句级触发器, 和行级触发器比如
create trigger tn
after update
on xxtable
for each row
begin sql N/
end$执行:update  xx table set xx=xx where id > 100
那么:sqlN/ 被触发几次?  以为id > 100
被触发 100 次
------------------------------
delimiter $
create trigger t4
before update
on ordz
for each row
begin insert into tmp values (5);
end $##  ERROR 1415 (0A000): Not allowed to return a result set from a trigger
#   不允许 result 集合集create table tmp(
id int
)$select * from ordz $
+-----+------+------+
| oid | gid  | much |
+-----+------+------+
|   1 |    1 |    2 |
|   3 |    2 |    2 |
|   4 |    3 |   30 |
|   5 |    3 |   20 |
+-----+------+------+update ordz set much = 1 where oid = 5 $
mysql> select * from tmp$
+------+
| id   |
+------+
|    5 |
+------+update ordz set much = 3 $
mysql> select * from tmp$
+------+
| id   |
+------+
|    5 |
|    5 |
|    5 |
|    5 |
|    5 |
+------+
影响多少行,每一行受影响, 触发器就执行,所以叫行级触发器!
# 在oracle中如果不写, 那么无论update语句影响多少行,都只执行一次
/*比如:    1个人下了订单, 买了5件商品, insert 5 次,可以用行级触发器,修改5次库存用语句级来,insert一条发货提醒但是 -- mysql 暂时不支持 语句级的触发器for each row 是行级 ,mysql中必须有其他的数据库,如果不写,则默认为语句级的
*/

mysql高级 tigger触发器 --[3]相关推荐

  1. mysql高级 tigger触发器 --[1]

    触发器: 很方便,在商城中最常见.,你可以用两条语句,也可以用一个触发器 场景: 表中, 一个订单产生,然后库存减去数量. 表中,有关联的两个表,可在订单生成的时候判断客户的钱是否够 当有订单的时候, ...

  2. mysql高级 tigger触发器 --[2]

    接上个问题 number 和 gid 都传什么? insert语句是否可以被引用到? insert 和 delete  两个状态 delimiter $ create trigger t2 after ...

  3. Mysql高级之触发器

    原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完 ...

  4. 布尔教育 mysql高级_布尔教育 Mysql高级 燕十八

    布尔教育 Mysql高级 燕十八--更多资源,课程更新在 多智时代 duozhishidai.com 多智时代资源,简介: 这是燕十八出的mysql教程,需要的可以看看 目录: 布尔教育 Mysql高 ...

  5. MySQL高级 —— 查询性能优化

    引言 承接<MySQL高级 -- 高性能索引>,本篇博客将围绕<高性能MySQL(第三版)>第六章内容进行总结和概括. 与索引的部分一样,SQL优化也是广大程序员深入MySQL ...

  6. MySQL高级 —— 高性能索引

    引言 最近一直在抱着<高性能MySQL(第三版)>研究MySQL相关热点问题,诸如索引.查询优化等,这阶段的学习是前一段时间MySQL基础与官方的"阅读理解"的进一步延 ...

  7. MySQL高级(一)

    MySQL高级(一)计划讲解的是索引,视图,存储过程和函数,触发器. 本次是在Linux上安装Mysql服务的,具体的安装连接请参照我的另一篇博客:https://blog.csdn.net/zeng ...

  8. 从前慢-Mysql高级及实战

    Mysql高级及实战 1 Linux 系统安装MySQL 1.1 下载Linux 安装包 https://dev.mysql.com/downloads/mysql/5.7.html#download ...

  9. Mysql高级命令与概念

    Mysql高级命令 1. 存储过程&函数-(了解) 在mysql数据库端编写带有逻辑的代码, 可以在客户端直接调用, java端可以写更少的代码 存储过程没有返回值, 函数必须有返回值 优点: ...

最新文章

  1. 【JavaSE_08】Java中static、继承、重写-思维导图
  2. websocket 连接本地端口_聊聊 WebSocket,还有 HTTP
  3. PAI平台搭建企业级个性化推荐系统
  4. C#forUnity快速入门(连载5)-C#OOP编程之封装性
  5. 关于在vSphere环境中,安装WindowsServer2008_R2_x64系统,分区格式为GPT,隐藏分区为200M方法心得
  6. 网关信息认证服务器不可达,网关消息认证服务器不可达
  7. 线程进程通信和同步方式
  8. MapWinGis入门
  9. 面试题17: 打印从1到最大的n位数
  10. winform C#中Byte与String的转换方法,相互转换
  11. Atitit 信息检索 文档资料的查询与检索 目录 1. 索引法 1 1.1. 名字placeholder索引 1 1.2. 文本txt索引 1 1.3. 索引集合包zip 1 1.4. 文件名
  12. html远程连接mysql_mysql允许远程连接
  13. 迅雷xware android,迅雷固件Xware
  14. 网络安全之黑客入侵的步骤
  15. cad设计草图_草图和乐高积木如何启动您的设计系统
  16. 【Java开发】设计模式 19:观察者模式
  17. spring cloud 的getway路由配置(网关配置)
  18. 【论文泛读】Modeling Intra and Inter-modality Incongruity for Multi-Modal Sarcasm Detection
  19. 【day6】阿里云七天实践训练营之在线编程挑战
  20. Java8.0 新特性二之Stream

热门文章

  1. 无刷无感直流电机驱动硬件分析
  2. 接口测试自动化的思考与总结
  3. 美学心得(第二百三十一集) 罗国正
  4. ImportError: cannot import name 'Process' 解决办法
  5. 直线检测——Radon变换/霍夫变换/基于快速傅里叶变换的直线检测
  6. fpga驱动rgb液晶屏_用FPGA设计LCD 转 VGA 其实vga和lcd驱动 非常类似
  7. 【Arduino】坐姿检测器
  8. 论文笔记——EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES(解释和利用对抗样本)
  9. java gul_[java实战篇]--java的GUI(1)
  10. AD Hoc(State 1)