mysql结束事务的标志是什么_MySql 中游标,事务,终止存储过程方法总结

最近在项目开发中,有段逻辑处理,需要在网站,app,后台分别运行,这样给后期的维护带来了很大的不方便,容易遗漏app端或者后台,所以讲java代码转换成存储过程,把逻辑处理写在了mysql端,其中遇到游标,事务的处理。问题并不困难,只是容易忘记,做了一下总结:

DECLARE err INT DEFAULT 0;#声明一个整形变量err,默认值是0

DECLARE orderDone INT DEFAULT FALSE;-- 遍历游标结束标识

DECLARE cur_order CURSOR FOR SELECT id,uid,productid,amount FROM p_order WHERE state=0 AND orderno=i_orderNo LIMIT 0,1; -- 游标的创建

DECLARE CONTINUE HANDLER FOR NOT FOUND SET orderDone=true; -- 绑定游标结束标识(该程序中没有使用到)

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET err=1;#当sqlexception handler捕捉到异常时,设置err=1

pro_begin:BEGIN -- 为了跳出做的准备

START TRANSACTION;-- 开始事务(创建事务点)

-- 从中取值

OPEN cur_order ; -- 打开游标

FETCH cur_order INTO intId,intUid,intPid,intOAmount; -- 使用游标

CLOSE cur_order; --关闭游标

以上是游标简单用法,因为只取第一个值,所以没有用到循环取值,游标的基本使用流程:定义游标,打开,使用,关闭

IF num>0 THEN

SET o_result = 3; -- 手机号已存在

LEAVE pro_begin; -- 此处是跳出存储过程,不继续执行

END IF;

以下是事务的回滚和提交,一般写于存储过程最后。

IF err = 1 THEN

ROLLBACK;

ELSE

COMMIT;

END IF;

end;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值