CREATEPROCEDUREscanover()BEGIN/*done为1执行异常,停止执行*/DECLAREdoneintdefault0;DECLAREnowtimeINT;/*SETnowtime=current_time();*//*DECLAREShizuNameVARCHAR(30);*//*声明游...
CREATE PROCEDURE scanover()
BEGIN
/*done为1执行异常,停止执行*/
DECLARE done int default 0;
DECLARE nowtime INT;
/*SET nowtime=current_time();*/
/*DECLARE ShizuName VARCHAR(30);*/
/* 声明游标 */
DECLARE rs CURSOR FOR SELECT * FROM zhangdan WHERE paystatus!=1;
/* 异常处理 */
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
/* 打开游标 */
OPEN rs;
FETCH NEXT FROM rs INTO nowtime;
/* 遍历数据表 */
REPEAT
IF NOT done THEN
SET nowtime=current_time();
/* 比较当前时间和还款时间 */
IF nowtime >= htime THEN
DECLARE yue float;
SET yue = 'SELECT pmw_member.money,pmw_member.id FROM pmw_member where pmw_member.username='+username;
/*逾期的钱00*/
DECLARE yqmoney float;
SET yqmoney = convert((ceil(overduetime/(24*60*60))*0.01),2);
/*定义该还的钱和逾期的钱的和*/
DECLARE summoney float;
SET summoney = money + yqmoney;
IF yue.money < summoney THEN
DECLARE overtime INT;
SET overtime=nowtime-htime;
UPDATE zhangdan SET overduetime = overtime WHERE zhangdan.id = id;
ELSE
DECLARE hyue float;
SET hyue = yue.money-summoney;
UPDATE pmw_member SET pmw_member.money = hyue WHERE pmw_member.username = username;
UPDATE zhangdan SET paystatus = 1 WHERE zhangdan.id = id;
INSERT INTO `pmw_money` (`username`, `uid`, `title`, `money`, `leixing`, `posttime`, `pid`, `hkjzrq`, `yqlx`, `payorderid`) VALUES ('username', 'yue.id', '还款', 'money', '支出', 'nowtime', 'pid','htime','yqmoney','goodsorderid')
END IF;
END IF;
END IF;
FETCH NEXT FROM rs INTO nowtime;
UNTIL done END REPEAT;
/* 关闭游标 */
CLOSE rs;
END
展开