码迷,mamicode.com
首页 > 数据库 > 详细

mysql 游标

时间:2015-07-23 15:25:05      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

BEGIN

DECLARE no_more_record INT DEFAULT 0;
DECLARE f_id BIGINT;
DECLARE p_m DECIMAL(18,4);
DECLARE p_account_pre DECIMAL(18,4);
DECLARE p_account DECIMAL(18,4);
DECLARE cur_record CURSOR FOR SELECT fund_id, money, account_money from fund_record where user_id=1040 ORDER BY fund_id ASC; /*首先这里对游标进行定义*/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record = 1; /*这个是个条件处理,针对NOT FOUND的条件,当没有记录时赋值为1*/


OPEN cur_record; /*接着使用OPEN打开游标*/
FETCH cur_record INTO f_id, p_m, p_account; /*把第一行数据写入变量中,游标也随之指向了记录的第一行*/

SET p_account_pre= p_account;

WHILE no_more_record != 1 DO

FETCH cur_record INTO f_id, p_m, p_account;
#修改账户金额
UPDATE fund_record set account_money= money+p_account_pre where fund_id=f_id;

##重置原始值
SET p_account_pre= p_m + p_account_pre;

END WHILE;
CLOSE cur_record; /*用完后记得用CLOSE把资源释放掉*/

END

mysql 游标

标签:

原文地址:http://www.cnblogs.com/antball/p/4670446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!