mysql高级 tigger触发器 --[3]
爆仓怎么办:
用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]相关推荐
- mysql高级 tigger触发器 --[1]
触发器: 很方便,在商城中最常见.,你可以用两条语句,也可以用一个触发器 场景: 表中, 一个订单产生,然后库存减去数量. 表中,有关联的两个表,可在订单生成的时候判断客户的钱是否够 当有订单的时候, ...
- mysql高级 tigger触发器 --[2]
接上个问题 number 和 gid 都传什么? insert语句是否可以被引用到? insert 和 delete 两个状态 delimiter $ create trigger t2 after ...
- Mysql高级之触发器
原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完 ...
- 布尔教育 mysql高级_布尔教育 Mysql高级 燕十八
布尔教育 Mysql高级 燕十八--更多资源,课程更新在 多智时代 duozhishidai.com 多智时代资源,简介: 这是燕十八出的mysql教程,需要的可以看看 目录: 布尔教育 Mysql高 ...
- MySQL高级 —— 查询性能优化
引言 承接<MySQL高级 -- 高性能索引>,本篇博客将围绕<高性能MySQL(第三版)>第六章内容进行总结和概括. 与索引的部分一样,SQL优化也是广大程序员深入MySQL ...
- MySQL高级 —— 高性能索引
引言 最近一直在抱着<高性能MySQL(第三版)>研究MySQL相关热点问题,诸如索引.查询优化等,这阶段的学习是前一段时间MySQL基础与官方的"阅读理解"的进一步延 ...
- MySQL高级(一)
MySQL高级(一)计划讲解的是索引,视图,存储过程和函数,触发器. 本次是在Linux上安装Mysql服务的,具体的安装连接请参照我的另一篇博客:https://blog.csdn.net/zeng ...
- 从前慢-Mysql高级及实战
Mysql高级及实战 1 Linux 系统安装MySQL 1.1 下载Linux 安装包 https://dev.mysql.com/downloads/mysql/5.7.html#download ...
- Mysql高级命令与概念
Mysql高级命令 1. 存储过程&函数-(了解) 在mysql数据库端编写带有逻辑的代码, 可以在客户端直接调用, java端可以写更少的代码 存储过程没有返回值, 函数必须有返回值 优点: ...
最新文章
- 【JavaSE_08】Java中static、继承、重写-思维导图
- websocket 连接本地端口_聊聊 WebSocket,还有 HTTP
- PAI平台搭建企业级个性化推荐系统
- C#forUnity快速入门(连载5)-C#OOP编程之封装性
- 关于在vSphere环境中,安装WindowsServer2008_R2_x64系统,分区格式为GPT,隐藏分区为200M方法心得
- 网关信息认证服务器不可达,网关消息认证服务器不可达
- 线程进程通信和同步方式
- MapWinGis入门
- 面试题17: 打印从1到最大的n位数
- winform C#中Byte与String的转换方法,相互转换
- Atitit 信息检索 文档资料的查询与检索 目录 1. 索引法	1 1.1. 名字placeholder索引	1 1.2. 文本txt索引	1 1.3. 索引集合包zip	1 1.4. 文件名
- html远程连接mysql_mysql允许远程连接
- 迅雷xware android,迅雷固件Xware
- 网络安全之黑客入侵的步骤
- cad设计草图_草图和乐高积木如何启动您的设计系统
- 【Java开发】设计模式 19:观察者模式
- spring cloud 的getway路由配置(网关配置)
- 【论文泛读】Modeling Intra and Inter-modality Incongruity for Multi-Modal Sarcasm Detection
- 【day6】阿里云七天实践训练营之在线编程挑战
- Java8.0 新特性二之Stream
热门文章
- 无刷无感直流电机驱动硬件分析
- 接口测试自动化的思考与总结
- 美学心得(第二百三十一集) 罗国正
- ImportError: cannot import name 'Process' 解决办法
- 直线检测——Radon变换/霍夫变换/基于快速傅里叶变换的直线检测
- fpga驱动rgb液晶屏_用FPGA设计LCD 转 VGA 其实vga和lcd驱动 非常类似
- 【Arduino】坐姿检测器
- 论文笔记——EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES(解释和利用对抗样本)
- java gul_[java实战篇]--java的GUI(1)
- AD Hoc(State 1)