1.数据库端(Navicat)实现事务和存储过过程的函数。
IN `fromuser` varchar(20),IN `touser` varchar(20),IN `balance` float,OUT `flag` varchar(20)
BEGIN
#Routine body goes here...
-- 声明变量t
DECLARE t FLOAT;
-- 声明变量result,执行所有sql后受影响的行
DECLARE result INT;
set result = 0;
-- 给t赋值,用于后续判断转账者是否有足够金额
SELECT balance into t from trans WHERE uname=fromuser;
-- 判断转账者账户是否有足够金额,若足够,则执行update,账户扣钱
if(t-amount>=0)then
-- 开启事务
start TRANSACTION;
-- 转入金额
UPDATE trans SET balance=balance+amount WHERE uname=touser