mysql存储过程——修改数据库的全部表的存储引擎
2017-02-17 17:25
671 查看
BEGIN
DECLARE bianliang varchar(128);
DECLARE done boolean default 0;
-- 定义游标
DECLARE Param_Cursor CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = 'testyinqing' AND TABLE_TYPE = 'BASE TABLE';
-- 解决mysql Bug:no data - zero rows fetched,selected,or processed
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; -- 设置游标的终止条件
OPEN Param_Cursor; -- 打开游标
-- 遍历所有的行
FETCH NEXT FROM Param_Cursor INTO bianliang;-- 获取第一条数据存入临时变量中
REPEAT
BEGIN
START TRANSACTION;-- 开始事务
SET @mytabl = CONCAT('ALTER TABLE ',bianliang,' ENGINE=InnoDB ');
PREPARE stmt from @mytabl;
EXECUTE stmt;
-- 获取下一条数据存入临时变量中
FETCH NEXT FROM Param_Cursor INTO bianliang;
COMMIT;-- 提交事务
END;
UNTIL done END REPEAT; -- 结束循环
CLOSE Param_Cursor; -- 关闭游标
END
DECLARE bianliang varchar(128);
DECLARE done boolean default 0;
-- 定义游标
DECLARE Param_Cursor CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = 'testyinqing' AND TABLE_TYPE = 'BASE TABLE';
-- 解决mysql Bug:no data - zero rows fetched,selected,or processed
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; -- 设置游标的终止条件
OPEN Param_Cursor; -- 打开游标
-- 遍历所有的行
FETCH NEXT FROM Param_Cursor INTO bianliang;-- 获取第一条数据存入临时变量中
REPEAT
BEGIN
START TRANSACTION;-- 开始事务
SET @mytabl = CONCAT('ALTER TABLE ',bianliang,' ENGINE=InnoDB ');
PREPARE stmt from @mytabl;
EXECUTE stmt;
-- 获取下一条数据存入临时变量中
FETCH NEXT FROM Param_Cursor INTO bianliang;
COMMIT;-- 提交事务
END;
UNTIL done END REPEAT; -- 结束循环
CLOSE Param_Cursor; -- 关闭游标
END
相关文章推荐
- mysql+asp.net开发注意大全:mysql创建数据库的时候,创建新用户,并且付给权限。mysql存储过程的编写,mysql数据库引擎的区别,mysql数据库文件夹备份
- mysql修改数据库的存储引擎(InnoDB)
- mysql修改数据库的存储引擎(InnoDB)
- MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)
- MySQL将某个数据库下的所有表的存储引擎修改为InnoDB类型语句
- MySQL将某个数据库下的所有表的存储引擎修改为InnoDB类型语句
- 【数据库】MySQL存储引擎
- mysql修改默认字符和默认存储引擎
- mysql-存储过程案例-存储过程中创建表和修改表数据
- mysql开启innoDB并且批量修改存储引擎
- 修改mysql的默认存储引擎
- mysql 查询数据库中的存储过程与函数的语句
- mysql中对数据库的每个表执行优化的存储过程
- mysql密码修改,存储过程的优缺点个人总结
- Mysql数据库修改数据库数据存储路径(安装的mysql为msi版本)
- mysql 导入导出数据库以及函数、存储过程的介绍
- mysql字符集和数据库引擎修改方法分享
- MySQL 5.1 无法创建、修改存储过程的解决(简单问题)
- MySQL查看和修改表的存储引擎
- linux下安装mysql并修改数据库存储路径