Mysql 批量修改表结构

来源:互联网 发布:dota2 mac版分辨率 编辑:程序博客网 时间:2024/06/05 09:47

     今天有个小需求,需要把100张表的引擎,从InnoDB改为MYISAM。想到要手工执行,简直头大,还好有存储过程。可以利用存储过程来批量处理。

-- 定义存储过程DELIMITER //CREATE PROCEDURE alter_table_enegine()BEGINDECLARE `@i` INT(11);DECLARE `@sqlstr` VARCHAR(2560);SET `@i`=0;WHILE `@i` < 100 DOSET @sqlstr = CONCAT("ALTER TABLE pt_course_",`@i`," ENGINE=MYISAM");PREPARE stmt FROM @sqlstr;EXECUTE stmt;SET `@i` = `@i` + 1;END WHILE;END;-- 执行存储过程CALL alter_table_enegine();-- 执行完,删掉临时用的存储过程DROP PROCEDURE alter_table_enegine;

      中间那部分,也可以改为建表语句,那么就会变成批量生成表的了:)

0 0
原创粉丝点击