mysql存储过程修改表的engine
来源:互联网 发布:张海山锐线体 mac 编辑:程序博客网 时间:2024/06/04 19:34
因公司需要将多个schema下所有使用MyISAM引用的表更改为InnoDB引擎,所以就定了个存储过程来实现
delimiter // --存储过程中可以使用分号
drop procedure if exists `alter_engine`// -- 若已存在则删除
create procedure `alter_engine`(in schema_name_in varchar(30)) --输入参数:schema名称
begin
declare alter_sql varchar(100); --用于获取游标查询生成的sql语句
declare stop_flag int; --游标循环是否结束的标志
/*获取指定schema下面使用MyISAM engine的表 , 并直接组装成 alter table table_name engine = InnoDB的SQl语句*/
declare table_name_cur cursor for select concat('alter table ',table_name,' ENGINE=InnoDB; ')
from information_schema.tables where table_schema = schema_name_in and engine = 'MyISAM';
/*循环结束标志*/
declare continue handler for not found set stop_flag = 1;
set stop_flag = 0;
open table_name_cur;
repeat
fetch table_name_cur into alter_sql;
if stop_flag = 0 then
/*prepare from 后面的变量必须是@开头*/
set @alter_sql = alter_sql;
prepare s1 from @alter_sql;
execute s1;
/*显示回收s*/
deallocate prepare s1;
end if;
UNTIL stop_flag = 1
END REPEAT;
CLOSE table_name_cur;
END;
//
/*切换回系统默认的命令结束标志*/
delimiter ;
- mysql存储过程修改表的engine
- MySQL修改存储过程
- 修改mysql的engine引擎
- PowerDesigner 修改 MySQL数据库的 Table或DataBase的 ENGINE(存储引擎)类型
- mysql下修改engine引擎的方法
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- Mysql修改存储过程和函数的定义者
- mysql engine存储引擎
- 批量修改表、存储过程的所有者
- 修改表和存储过程的所有者
- mysql批量查询、修改表, 批量删除存储过程
- MySQL的存储过程
- mysql的存储过程
- MySQL的存储过程
- mysql的存储过程
- mysql的存储过程
- SQLSERVER 系统表说明
- 转:持续集成之“分支策略”
- 转载:Win7下的 Visual Studio 2008 破解90天限制的激活升级方法。
- 为控件关联一个变量,但是次变量采用带参数构造函数
- asp.net中引用html
- mysql存储过程修改表的engine
- 第一次
- vbs 对excel的操作 删除、修改单元格,设置字体、背景色
- 删除文件指定字符串之间的文字
- C compiler cannot create executables解决办法
- 简单谈基于SQL SERVER 分页存储过程的演进
- 索引是指[表优化]
- 整形医院咨询接待回答技巧
- VC调试技术小技巧