mysql存储过程遍历表的实例代码
发布时间:2016-01-28 编辑:jiaochengji.com
本文分享一例mysql的存储过程代码,可用于遍历表信息,有兴趣研究mysql存储过程的朋友,可以作个参考。
本节内容:
mysql存储过程,遍历表。
sql代码:
复制代码 代码示例:
DELIMITER $$
/*更改discuz数据库中每个表的字符集为utf8,校对规则为utf8_bin */
DROP PROCEDURE IF EXISTS `discuz`.`qifei` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `qifei`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a VARCHAR(20);
DECLARE rs CURSOR FOR
SELECT `TABLE_NAME` FROM information_schema.`TABLES` where `TABLE_SCHEMA`='discuz';
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
open rs;
REPEAT
FETCH rs INTO a;
SET @s = CONCAT('
ALTER TABLE ',a,'
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_bin');
PREPARE stmt FROM @s;
EXECUTE stmt;
UNTIL done END REPEAT;
CLOSE rs;
END $$
DELIMITER ;
/*更改discuz数据库中每个表的字符集为utf8,校对规则为utf8_bin */
DROP PROCEDURE IF EXISTS `discuz`.`qifei` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `qifei`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a VARCHAR(20);
DECLARE rs CURSOR FOR
SELECT `TABLE_NAME` FROM information_schema.`TABLES` where `TABLE_SCHEMA`='discuz';
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
open rs;
REPEAT
FETCH rs INTO a;
SET @s = CONCAT('
ALTER TABLE ',a,'
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_bin');
PREPARE stmt FROM @s;
EXECUTE stmt;
UNTIL done END REPEAT;
CLOSE rs;
END $$
DELIMITER ;
知识点:变量定义、预处理语句、系统表、游标、循环语句、字符串函数。
您可能感兴趣的文章:
mysql动态游标与mysql存储过程游标(示例)
分享:Mysql 5.0存储过程学习总结
mysql存储过程遍历表的实例代码
mysql实例 日期计算的存储过程
mysql 存储过程用法举例
mysql functions实例:在存储过程中使用数学函数
mysql call的用法 调用另一个存储教程
mysql实例 存储过程中创建与删除临时表
mysql实例 使用if语句检测数据库版本
mysql case实例:在存储过程中使用CASE WHEN语句
上一篇:mysql中CASE WHEN语句的用法
下一篇:mysql 查看表结构的方法参考
[关闭]