首页 > 数据库技术 > 详细

MySQL存储过程修改表存储引擎为InnoDB

时间:2015-07-12 15:54:51      阅读:259      评论:0      收藏:0      [点我收藏+]

第一次写存储过程,写得好憋屈。

set @c_db := (select database());
drop procedure if exists alter_tables_engine;
delimiter //
create procedure alter_tables_engine()
  begin
    declare db varchar(64);
    declare done boolean default 0;
    declare t varchar(64);
    declare table_names cursor for
       select table_name from information_schema.tables where table_schema = @c_db;
    declare continue handler for sqlstate ‘02000‘ set done = 1;
    open table_names;
    repeat
      fetch table_names into t;
      set @stmt = concat(‘alter table ‘, t, ‘ engine = InnoDB‘);
      prepare s from @stmt;
      execute s;
      deallocate prepare s;
    until done end repeat;
    close table_names;
  end;
//
delimiter ;
call alter_tables_engine();
drop procedure if exists alter_tables_type;

最后提个问题,我还没有google到的,怎么unset之前已经定义过的用户变量呢?

MySQL存储过程修改表存储引擎为InnoDB

原文:http://my.oschina.net/atanl/blog/477555

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!