解决MySQL 游标最后一行重复
在使用MySQL游标时,发现最后一行一直被重复读取 后来在发现应该把读取到的数据放在下一个循环里面使用可以避免重复 代码如下:
首页 → 数据库技术
背景:
阅读新闻
解决MySQL 游标最后一行重复
[日期:2011-07-20] 来源:Linux社区 作者:babaoqi [字体:]
在使用MySQL游标时,发现最后一行一直被重复读取
后来在发现应该把读取到的数据放在下一个循环里面使用可以避免重复
代码如下:
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `sp_getAllTableName`$$
CREATE PROCEDURE `sp_getAllTableName`(OUT strAllTableNames VARCHAR(10000))
BEGIN
DECLARE bEnd BOOLEAN DEFAULT FALSE;
DECLARE tbName VARCHAR(255);
# 声明游标
DECLARE curTableNames CURSOR FOR SELECT TABLE_NAME FROM information_schema.tables AS t WHERE t.table_schema="test";
# DECLARE CONTINUE HANDLER
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET bEnd=TRUE;
SET strAllTableNames = "";
# 打开游标
OPEN curTableNames;
# 获取所有行数据
# 获取第一行内容
FETCH curTableNames INTO tbName;
# 循环开始
REPEAT
SET strAllTableNames = CONCAT(strAllTableNames,tbName,";");
# 获取下一行内容
FETCH curTableNames INTO tbName;
# 循环结束
UNTIL bEnd END REPEAT;
# 关闭游标
CLOSE curTableNames;
# 处理完毕
SET strAllTableNames = CONCAT("All table names:",strAllTableNames);
END$$
DELIMITER ;
CALL test.sp_getAllTableName(@allNames);
SELECT @allNames;
设置CentOS下开机自动启动Oracle
Oracle Shared Pool优化思路
相关资讯 MySQL教程
图片资讯
本文评论 查看全部评论 (0)
评论声明
最新资讯
本周热门
Linux公社简介 - 广告服务 - 网站地图 - 帮助信息 - 联系我们
本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。
Copyright © 2006-2011 Linux公社 All rights reserved 浙ICP备06018118号
推荐阅读
-
Mysql删除重复数据保留最小的id 的解决方法
-
使用distinct在mysql中查询多条不重复记录值的解决办法
-
flex布局:解决justify-content: space-between;最后一行靠左对齐
-
在MySQL5.5版本时安装到最后一步卡死的解决办法
-
详解MySQL主键唯一键重复插入解决方法
-
解决MySQL安装到最后一步未响应的三种方法
-
MySql分页时使用limit+order by会出现数据重复问题解决
-
解决MySQL插入新记录不在最后一行的问题
-
MySQL~InnoDB引擎解决脏读,不可重复读,幻读,丢失更新的原理(lock事务锁、自增长锁、Record Lock、Gap Lock、Next-Key Lock、死锁)
-
flex space-between最后一行对齐问题的解决方案