dropprocedureifexistsmoney_transfer;createproceduremoney_transfer(inaccountPayvarchar(30),inaccountAccpectvarchar(30),inamountdouble,outsuccessboolean)beginstarttransacti...
drop procedure if exists money_transfer;
create procedure money_transfer(
in accountPay varchar(30),
in accountAccpect varchar(30),
in amount double,
out success boolean)
begin
start transaction;
set autocommit=false;
select money from account where id = accountPay into @money;
select id from account where id = accountAccept into @anum;
if(@money is null)or(@money
then set success=false;
else
update account set money = money -amount where id=accountPay;
update account set money = money +amount whereid=accountAccpect;
set success= true;
end if;
commit;
end
服务器版本: 5.0.45-community-nt-log
Protocol version: 10
求大神解答
start transaction
set autocommit=false
select @money=money from account where id=accountPay
select @anum=id from account where id = accountAccept
if (@money is null)(@anum is null) or@(0
set success=false
else
update account set money = money -amount where id=accountPay
update account set money = money +amount where id=accountAccpect
set success= true
end if
commit
部分代码改成这样,上面问题没有了,但是出现如图问题
展开