mysql高级 tigger触发器 --[2]
接上个问题
number 和 gid 都传什么?
insert语句是否可以被引用到?
insert 和 delete 两个状态
delimiter $
create trigger t2
after
insert
on ordz
for each row
begin update goods set number = number-? where gid = ?; # 哪一个? 因为是新的所以字段为 new
end $
改为
delimiter $
create trigger t2
after
insert
on ordz
for each row
begin update goods set number = number-new.much where gid = new.gid; # new
end $
ok,报错了
大致意思是 不能同时监视两个一样的 如 insert 这种操作!!
查看已经有的: show triggers [\G]
删掉已经有的 : drop trigger Name;
再次运行就可~~~
truncate ordz; # 不干扰视线
insert into ordz values(3,2,2)$
insert into ordz values(4,3,9)$
+-----+------+--------+
| gid | name | number |
+-----+------+--------+
| 1 | cat | 14 |
| 2 | dog | 18 |
| 3 | pig | 11 |
+-----+------+--------+ # 成功 合理的删除了 改删除的
如果取消订单?应该恢复!
比如第三个pig商品
create trigger t3
after
delete
on ordz
for each row
beginupdate goods set number = old.much+number where gid= old.gid;
end$delete from ordz where oid = 4 $ # 删除订单+-----+------+--------+
| gid | name | number |
+-----+------+--------+
| 1 | cat | 14 |
| 2 | dog | 18 |
| 3 | pig | 20 |
+-----+------+--------+
改数量:
'' insert 'new'
'old' delete ''
'old' update 'new'三种状态
比如改pig
mysql> select * from goods;
+-----+------+--------+
| gid | name | number |
+-----+------+--------+
| 1 | cat | 14 |
| 2 | dog | 18 |
| 3 | pig | 11 |
+-----+------+--------+
3 rows in set (0.00 sec)mysql> select * from ordz;$
+-----+------+------+
| oid | gid | much |
+-----+------+------+
| 1 | 1 | 2 |
| 3 | 2 | 2 |
| 4 | 3 | 9 |
+-----+------+------+
create trigger t4
before
update
on ordz
for each row
begin update goods set number = number + old.much - new.much where gid = old.gid;# +(5-3) = 2
end$update ordz set much = 5 where oid=4$mysql> select * from goods$
+-----+------+--------+
| gid | name | number |
+-----+------+--------+
| 1 | cat | 14 |
| 2 | dog | 18 |
| 3 | pig | 15 |
+-----+------+--------+
3 rows in set (0.00 sec)mysql> select * from ordz$
+-----+------+------+
| oid | gid | much |
+-----+------+------+
| 1 | 1 | 2 |
| 3 | 2 | 2 |
| 4 | 3 | 5 |
+-----+------+------+
3 rows in set (0.00 sec)before 好像没有区别?!!~~如果剩余3头猪,但是客户买了10头猪,发生了什么情况!! 能否预防?
例:
> update ordz set much = 30 where oid=4
ordz:+-----+------+------+| oid | gid | much |+-----+------+------+| 1 | 1 | 2 || 3 | 2 | 2 || 4 | 3 | 30 |+-----+------+------+
goods:+-----+------+--------+| gid | name | number |+-----+------+--------+| 1 | cat | 14 || 2 | dog | 18 || 3 | pig | -10 |+-----+------+--------+ # 能否在购买量超过库存时,把much自动改为number 。 before 就体现出来了
爆仓了!!!
mysql高级 tigger触发器 --[2]相关推荐
- mysql高级 tigger触发器 --[1]
触发器: 很方便,在商城中最常见.,你可以用两条语句,也可以用一个触发器 场景: 表中, 一个订单产生,然后库存减去数量. 表中,有关联的两个表,可在订单生成的时候判断客户的钱是否够 当有订单的时候, ...
- mysql高级 tigger触发器 --[3]
爆仓怎么办: 用sql的判断语句,就像某某语言一样! /* 之前一些语句:declare xx int/char.. 这个是声明变量if xxx then xyxyend if; if语句 */cre ...
- 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端可以写更少的代码 存储过程没有返回值, 函数必须有返回值 优点: ...
最新文章
- Pandas 基础 (5) —— 处理缺失数据及层次化索引
- 1.spring boot要求最低jdk1.8,平安默认1.6问题,-》安装JDK1.8 2.maven 3.3.3要求最低jdk1.7-安装jdk 1.8...
- 第四范式连续两年入选CB Insights全球AI百强榜
- 一发工资就全部取出,会对银行流水有影响吗?
- C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)
- c# 对各数据库、数据集链接字符串
- 神经网络技巧篇之寻找最优参数的方法【续】
- msp430项目编程44
- 如何录制电脑系统声音(Audacity)
- R数据分析:方法与案例详解--自学笔记
- 木马开发的基本理论基础(四)
- Linux CentOS服务器时间同步阿里云北京时间
- 《领导力与沟通艺术》
- Python绘制漫天的雪花,漫步天涯
- 金庸武侠、四大名著的语言风格
- [读书笔记]多线程学习笔记
- 计算机的随想作文500字,新年随想作文500字(通用5篇)
- 华为助力南昌轨道“长龙”4号线实现南北游走
- 倒F天线仿真及走线宽度和高度对天线参数的影响
- 互联网、因特网、万维网、局域网、广域网的区别
热门文章
- Coarse-Grain Fine-Grain Coattention Network for Multi-Evidence Question Answering
- NGINX免费配置二级域名及同时开启HTTPS(HTTP强制转HTTPS)nodejs的express后端项目,前端next.js的SSR项目
- 冰河凭什么能够顺利拿下三个软考高级证书?有什么技巧(诀窍)吗?
- 【linux】can‘t set line discipline
- 【Azure Data Platform】ETL工具(21)——Azure Databricks使用(1)——访问Azure Blob
- 什么是令牌桶(Token Bucket)?
- 中语言超酷特性 之 --- 逆唤算式
- 地震——《孩子,快抓紧妈妈的手》
- [转载]摩托车 各车型 坐姿 疲劳逻辑详解
- Codeforces 786A	Berzerk(博弈)