昨天线上mysql存储过程出现一个bug,出现问题的代码如下:
begin
declare v_count int;
declare v_balance int;
declare amount int;
declare v_pay_status varchar(50);
declare v_ssoid varchar(20);
declare v_reacharge_type varchar(20);
select count(*) into v_count from rechargeinfo ri where ri.rechargeorder=p_partner_order;
START TRANSACTION;
if v_count > 0 then
/*do something*/
else
/*do something else*/
endif;
首先,能确定的是传入的 p_partner_order
这个参数的值已经在数据库中存在了,但是执行这个存储过程的时候,直接跑到else
里面,也就是do something else
了,收到反馈之后,又把过程模拟了一次,却可以正常运行,实在不知道是哪个地方出了问题,先谢谢了。