1、需求,手动给会员新增京币,并且添加分配日志,返回修改是否成功

CREATE DEFINER=`jszapi`@`%` PROCEDURE `p_allot_user_coin`(IN `_member_id` int,IN `_coin` int,OUT `_res` tinyint)
BEGIN
/*
用途:给会员手动分配京币
作者:Mo
创建时间:2019-12-16 参数:
_member_id : 会员id
_coin : 分配京币数量
_res : 执行结果,1表示成功,0表示失败
*/
DECLARE err INT DEFAULT 0; #是否有sql错误
DECLARE timestampTmp int;#当前的时间戳 DECLARE memberSPIDCount INT DEFAULT 0;#会员id对应会员数(用于验证传入会员id是否有误) DECLARE memberTableUpdateCount INT DEFAULT 0;#更新t_members表影响的行数
DECLARE allotTableInsertId INT DEFAULT 0; #插入t_coin_log表的自增id DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET err=1;#判断是否有SQL错误,全局 #开启事务
START TRANSACTION; #赋值timestampTmp
   set timestampTmp=unix_timestamp(); #判断传入会员id是否有误
SELECT COUNT(1) INTO memberSPIDCount FROM t_members WHERE id = _member_id; IF memberSPIDCount = 0 THEN SET _res = 0; ELSE
#更新
UPDATE t_members SET jing_coin = jing_coin + _coin WHERE id = _member_id; #获取更新数
SELECT ROW_COUNT() INTO memberTableUpdateCount;
IF memberTableUpdateCount = 0 THEN
SET err = 1;
END IF; #添加分配日志
INSERT INTO t_coin_log(`member_id`,`coin`,`type`,`describe`,`create_time`) VALUES(_member_id,_coin,3,'公司分配',timestampTmp);
#获取插入的自增ID
SELECT @@IDENTITY INTO allotTableInsertId;
IF allotTableInsertId = 0 THEN
SET err = 1;
END IF; #判断事务是否提交
IF err = 1 THEN
SET _res = 0;
ROLLBACK;#回滚事务
ELSE
SET _res = 1;
COMMIT;#提交事务
END IF; END IF;
END

2、查询,存储过程的调用:传入参数(IN)直接写需要传入的参数,传出参数(OUT)需要补全格式为 @变量名,如调用上述过程

#CALL 过程名(传入参数1,传入参数2,@传出变量),res名称自己取
CALL p_allot_user_coin(3,100,@res);

3、结果,输出结果 返回定义的修改状态_res值

MySQL数据篇 (一)存储过程实现简单的数据修改及事务的使用的更多相关文章

  1. mysql应用之通过存储过程方式批量插入数据

    我们平时的测试过程中有一个环节就是准备测试数据,包括准备基础数据,准备业务数据,使用的场景包括压力测试,后台批量数据传输,前端大数据查询导出,或者分页打印等功能,准备测试数据我们通俗点讲就是造数据,根 ...

  2. MySQL数据篇(五)--SQL对数据进行按月统计,或对数据进行按星期统计

    对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说. 一.对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总 ...

  3. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(视频总揽和功能演示)

    主要实现的功能 其它视频和资料稍候再补充上 我先写后面的文章 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装数据库,数据库简单说明)

  4. 用python实现简单EXCEL数据统计的实例

    用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...

  5. Android学习之简单的数据存储

    在Android中,数据存储是开发人员不可以避免的.Android为开发者提供了很多的存储方法,在前面的博客中,已经讲述了sqlite存储数据.今天将介绍用SharedPreferences来存储数据 ...

  6. 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试)

    2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(数据库简单说明) https://www.mysql.com/ 咱用安装版的 我把自己下载的放在了这里 现在 ...

  7. python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原

    ###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...

  8. mysql学习【第3篇】:使用DQL查询数据

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第3篇]:使用DQL查询数据 DQL语言 DQL( Data Query Lan ...

  9. MySQL基础篇(04):存储过程和视图,用法和特性详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.存储过程 1.概念简介 存储程序是被存储在服务器中的组合SQL语句,经编译创建并保存在数据库中,用户可通过存储过程的名字调用执行.存储过程 ...

随机推荐

  1. CCNA 之 十 ACL 访问控制列表

    ACL 访问控制列表 ACL(Access Control List) 接入控制列表 ACL 的量大主要功能: 流量控制 匹配感兴趣流量 标准访问控制列表 只能根据源地址做过滤 针对曾哥协议采取相关动 ...

  2. Django REST framework(DRF)

    Django REST framework(DRF) FBV与CBV CBV源码分析 Restful接口规范 DRF简单配置使用和源码解析 DRF序列化器 DRF10大接口 DRF视图集 三大组件 j ...

  3. Linux机器相互登录

    1周第4次课(3月22日)课程内容: 1.16 Linux机器相互登录 Linux相互登录可以分2种方式,一种为ssh +IP地址,然后输入对应的root密码,一种为密钥验证方式,其中一台机器放公钥, ...

  4. C语言博客作业11

    一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...

  5. TensorFlow2.0

    安装开发环境 1.首先安装 anaconda(https://www.anaconda.com/) 2.修改anaconda的镜像源 conda config --add channels https ...

  6. pod install/update速度慢或失败的解决方案实践

    本文基于 https://www.cnblogs.com/dabaomo/p/9634727.html 声明 坚决拥护党的领导,本文章所用技术乃出于工作需要,敬请谅解. 正文 可以先过去快速浏览一遍再 ...

  7. .Neter所应该彻底了解的委托

    本文将通过引出几个问题来,并且通过例子来剖析C#中的委托以及用法,做抛砖引玉的作用 对于委托我发现大部分人都有以下问题,或者可能在面试中遇过这样的: 委托是不是相当于C/C++的函数指针? 委托究竟是 ...

  8. Linux系统通过FTP进行文档基本操作【华为云分享】

    [摘要] Linux系统里通过FTP可以对文档进行上传,更改权限和基本的文档管理. 获得Linux系统后,不熟悉命令操作的情况下,可以通过FTP工具进行文档操作,下面以WinSCP工具为例进行讲解: ...

  9. 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪【华为云分享】

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日:而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

  10. luogu P1722 矩阵 II

    题目背景 usqwedf 改编系列题. 题目描述 如果你在百忙之中抽空看题,请自动跳到第六行. 众所周知,在中国古代算筹中,红为正,黑为负-- 给定一个1*(2n)的矩阵(usqwedf:这不是一个2 ...