MySQL创建商品入库和出库后库存更新的触发器
在Navicat 上建立 mysql 的触发器遇到了不少的坑,这篇文章记录正确的建立mysql触发器的查询语句,同时整理一下创建过程遇到的坑:
入库需求:
对入库表,在商品入库登记后,库存要进行更新。建立触发器如下:
DELIMITER $$ -- 首尾设置$$符,是让sql语句将其之间作为一个整体执行
CREATE TRIGGER `stocking_into` AFTER INSERT ON `stocking` FOR EACH ROW -- 触发器语法
BEGIN
-- new表 是mysql5之后 创建插入触发器暂存数据的一张表,直接用就行SET @a=new.rid; -- @表示这是一个变量,这里之前使用 DECLARE @a INT; 一直报语法错误,不知道为什么,于是就这样写了SET @b=new.pid;SET @d=new.amount;IF(SELECT stock.pid from stock WHERE stock.pid=@b AND stock.rid=@a) IS NULL THENINSERT INTO stock VALUES(@b,@a,@d);ELSE UPDATE stockSET stock.amount=stock.amount+@dWHERE stock.pid=@b AND stock.rid=@a;END IF; -- IF 语句完后要接 END IF,IF后面要使用 THEN
END;
$$
出库需求
对出库表,在商品出库后,更新库存。
DELIMITER $$
CREATE TRIGGER `stocking_out` AFTER INSERT ON `outstock` FOR EACH ROW
BEGINSET @a=new.rid;SET @b=new.pid;SET @d=new.amount;IF(SELECT stock.pid FROM stock WHERE stock.pid=@b AND stock.rid=@a) IS NOT NULL THENIF(SELECT stock.amount FROM stock WHERE stock.amount>=new.amount AND stock.pid=new.pid AND stock.rid=new.rid) IS NOT NULL THENUPDATE stockSET stock.amount=stock.amount-@dWHERE stock.pid=@b AND stock.rid=@a;END IF;END IF;
END
MySQL创建商品入库和出库后库存更新的触发器相关推荐
- 数字化仓储管理系统:实现物料入库、出库、库存的高效管理
建设背景 物料管理,是对仓库及仓库内的物料所进行的管理,是企业为了充分利用所具有的仓储资源.提供高效的仓储服务所进行的计划.组织.控制和协调的过程.物料管理作为连接生产者和消费的纽带,在整个物流和企业 ...
- mysql入库出库触发器_入库出库后库存自动更新的SQL触发器语句是什么?
tb1(产品表)cpidcpnamecpcolorkucun1xxxxxx82xxxxxx7=================================tb2(入库表)riqirukucpid2 ...
- 车辆入库java程序_java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,...
java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,需要自行制作中心服务器,中心服务器代码在本人另一实例里面,请自行下载 [实例简介] 扫描入库及出库,基于谷歌类开发.仅提供完整代 ...
- 汽车抵质押贷款系统-押品评估、登记、入库、出库、处理等标准化流程管理
一.什么是汽车抵质押贷款 汽车抵质押贷款是指借款人将本人名下车辆抵质押给贷款机构,贷款机构获得车辆的所有权,按照借款人同意的条件向借款人发放贷款.借款人按照双方约定的还款方式和条件按期向贷款机构还款, ...
- 四向车立体库|四向穿梭车AGV如何进行入库和出库?
仓库仓储货架类型多样,存取货方式主要分为以下几种,包括人工存取货.叉车存取货和自动化存取货.如今,很多企业都想实现仓库自动化运作,所以想用自动化仓库货架.比如四向车货架就是自动化仓储货架的一种.那么, ...
- shp数据入库、出库、可视化
shp数据入库.出库.可视化 今天给npy写了次作业,由于各种原因,不能用我用了很久的SSM或者SpringBoot框架,只用了最原始的servlet+jsp,然后我发现-自己已经不太会用了,写这个博 ...
- 停车场的收费系统:停车场有3类汽车,每种收费也不一样,要求输入汽车类型和入库、出库时间,输出应交的停车费。假设停车时间不超过24小时。
C/C++语言程序设计题目 设计一个停车场的收费系统.停车场有3类汽车,分别用3个字母表示:C代表轿车,B代表客车, T代表卡车.收费标准如下表所示. 车辆类型 收费标准 轿车 3小时内,每小时5 ...
- 仓库管理系统、WMS、仓储管理、入库、出库、移库、调拨、报损、盘点、采购、退货、业务管理、销售、财务记账、应收、应付、库存清单、库存预警、库存容量、库存台账、库位管理、产品管理、承运商、供应商、权限
仓库管理系统.WMS.仓储管理.入库.出库.移库.调拨.报损.盘点.采购.退货.业务管理.销售.财务记账.应收.应付.库存清单.库存预警.库存容量.库存台账.库位管理.产品管理.承运商.供应商.权限 ...
- SpringBoot+MyBatisPlus+Swagger2.7规范开发接口流程(以废料包材入库与出库为例)
场景 SpringBoot+Swagger2实现可视化API文档流程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/936166 ...
- 仓储系统之入库、出库理解浅谈
入库管理: 功能:入库单打印.入库上架确认. 一.入库流程: 1,首先,操作人员在电脑上通过仓储系统的入库管理下的入库单打印功能查询有没有要打印的入库单.如果有,打印入库单,入库单主要信息:商品条码. ...
最新文章
- Github标星24k,127篇经典论文下载,这份深度学习论文阅读路线图不容错过
- 动态规划之等差递减区间个数
- C++ Primer 5th笔记(chap 19 特殊工具与技术)类成员指针
- 使用OpenCV创建视频
- Oracle执行计划解释
- 未来教育计算机二级第一套ppt解析,计算机二级未来教育PPT部分答案
- Python3+RobotFramework+pycharm
- 黑金AX7Z100 FPGA开发板移植LWIP库(二)PL端
- 我的春招实习+秋招总结【前端开发】
- 升级Microsoft Edge到最新版本
- YOLOv5、v7改进之三十七:结合CVPR2022新作ConvNeXt网络
- QSPI FLASH与SD卡同时支持fatfs文件系统
- 不得不学,从零到一搭建ELK日志,Docker环境下部署 logstash工具
- SublimeText3和EverEdit 的一些使用感受
- EXCEL数据分析——上海餐饮数据分析
- VX_Ipad协议和Mac协议
- http://blog.sina.com.cn/s/blog_a3d2fd2d0101hyu7.html
- 通用方法 关闭Outlook最小化非直接退出
- 最给人启迪的30条编程名言
- 4行Python代码监测每行程序的运行时间和空间消耗