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;