mysql 扣费逻辑 存储过程
来源:互联网 发布:互联网过滤软件 编辑:程序博客网 时间:2024/04/30 22:07
参考博客 http://costlend.com/2016/03/14/dispatch-pay-balance-keep-consistence/
BEGIN
DECLARE from_account_balance decimal(8,2);
START TRANSACTION;
SELECT emp_point_usable INTO from_account_balance FROM bus_employee
WHERE id = in_id FOR UPDATE;
IF from_account_balance>=in_money THEN
UPDATE bus_employee SET emp_point_usable = emp_point_usable - in_money , update_date = sysdate()
WHERE id = in_id;
COMMIT;
SET status=1;
ELSE
ROLLBACK;
SET status=0;
END IF;
END;
-- 调用 存储过程 并返回扣费是否成功
set @status:=0;
CALL account_balance_dec(9001,'40288ae45c7c3b5b015c7c44a5e80011',@status);
select @status as status;
-- 查看 存储过程
show create procedure account_balance_dec;
-- 创建 扣费存储过程 行级锁 (关键在于在调用存储过程中,就会涉及到表锁,行锁这一概念:所谓区别:有索引的时候就是行锁,没有索引的时候就是表索。innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的.)
BEGIN
DECLARE from_account_balance decimal(8,2);
START TRANSACTION;
SELECT emp_point_usable INTO from_account_balance FROM bus_employee
WHERE id = in_id FOR UPDATE;
IF from_account_balance>=in_money THEN
UPDATE bus_employee SET emp_point_usable = emp_point_usable - in_money , update_date = sysdate()
WHERE id = in_id;
COMMIT;
SET status=1;
ELSE
ROLLBACK;
SET status=0;
END IF;
END;
-- 调用 存储过程 并返回扣费是否成功
set @status:=0;
CALL account_balance_dec(9001,'40288ae45c7c3b5b015c7c44a5e80011',@status);
select @status as status;
-- 查看 存储过程
show create procedure account_balance_dec;
阅读全文
0 0
- mysql 扣费逻辑 存储过程
- MySql存储过程—5、逻辑判断,条件控制
- MySql存储过程—5、逻辑判断,条件控制
- MySql存储过程—5、逻辑判断,条件控制
- MySql存储过程—逻辑判断,条件控制,循环控制
- MySql存储过程—逻辑判断,条件控制,循环控制
- MySql存储过程—逻辑判断,条件控制,循环控制
- mysql 写一个带有一定逻辑的存储过程
- [MySQL] InnoDB逻辑存储结构
- [MySQL]InnoDB逻辑存储结构
- MySQL InnoDB 逻辑存储结构
- 【mysql】mysql存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- PHP——登录时用户名密码区分大小写设置(binary)
- React学习笔记_shoping_cart
- 制造linux安装系统老毛桃u盘
- Python与机器学习之数据可视化(三)
- 电脑键盘上各个键的作用
- mysql 扣费逻辑 存储过程
- Java中对一个数组中的数字进行排序
- hdoj no.2009
- 禁用页面缓存
- 《Improved adaptive Gausian mixture model for background subtraction》
- spring自定义标签使用
- ChaLearn Gesture Challenge_1:CGD数据库简单介绍
- Ubuntu 下 Hadoop/Hive 环境搭建
- 有关 PHP 和 js 浮点运算的坑