十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创建存储过程
创新互联建站网站建设公司,提供成都网站制作、网站设计,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
mysql delimiter $ -- delimiter $是设置 $为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql create procedure sp_test(IN pi_id int, OUT po_name varchar(10))
- begin
- select * from test.tb_test;
- select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id;
- end
- $
Query OK, 0 rows affected (0.00 sec)
mysql delimiter ; -- 恢复分号作为分隔终止符号
5.调用存储过程
mysql set @po_name='';
Query OK, 0 rows affected (0.00 sec)
mysql call sp_test(1,@po_name);
CREATE
TRIGGER `入库表` AFTER INSERT ON `入库表`
FOR EACH ROW BEGIN
CALL MyFun(new.lsh);
END IF;
END;
然后写一个存储过程
DELIMITER $$
USE `yourdatabase`$$
DROP PROCEDURE IF EXISTS `MyFun`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `MyFun`(IN clsh CHAR(16))
BEGIN
DECLARE totle, num1,num2 int;
declare bh char(16);
SELECT 数量 INTO num1 FROM 入库表 WHERE 入库编号=clsh;
SELECT 物料编号 into bh FROM 入库表 WHERE 入库编号=clsh;
SELECT 数量 INTO num2 FROM 库存表 WHERE 物料编号=bh;
set totle=num1+num2;
update 库存表 set 数量=totle WHERE 物料编号=bh;
END$$
DELIMITER ;
大概就是这样,里面的中文改成你对应的表和字段,然后你可以在存储过程里面加上异常处理,比如编号重复等。
找到库存表,找到库存数量的字段,用语句修改库存数量的值即可。
如:库存表:stock 库存数量字段:nums
update stock set nums = nums + 1 where sku_id = 10 (修改sku_id为10的纪录,将数量在原基础上加1)
注意:1.正式数据库不要随意改动 2.update语句中尽量加上where条件,即便条件是where 1=1(养成这个习惯),有句话这样说,update语句如果不加where条件生孩子会没屁眼????