如何批量修改mysql表的引擎

工作需要,要将所有的mysql表的引擎改为innodb

执行如下SQL


SET @DATABASE_NAME = ‘name_of_your_db‘;
SELECT  CONCAT(‘ALTER TABLE `‘, table_name, ‘` ENGINE=InnoDB;‘) AS sql_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = @DATABASE_NAME
AND     `ENGINE` = ‘MyISAM‘
AND     `TABLE_TYPE` = ‘BASE TABLE‘
ORDER BY table_name DESC;

将查询得到的结果复制出来作为新的SQL执行即可

时间: 2024-10-16 06:40:36

如何批量修改mysql表的引擎的相关文章

批量修改mysql表、表、数据库的字符校对规则

记录一个在工作中遇到的问题,也不算是问题,为的是找一种简便的方法批量修改数据表字段的排序规则,在MySQL中叫collation,常常和编码CHARACTER一起出现的.collation有三种级别,分辨是数据库级别,数据表级别和字段级别. 1.The database level 2.The table level 3.The column level https://confluence.atlassian.com/display/CONFKB/How+to+Fix+the+Collatio

生产环境批量修改mysql引擎

生产环境中如何批量修改MySQL引擎 一般来说这样的需求并不多见,但是偶尔也会有,在这里我们推荐使用sed对备份的内容进行引擎转换的方式,当然了,不要忘记修改my.cnf使之支持并能高效的使用对于的引用. 方法1 mysql命令语句修改 创建后引擎更改,5.0版本之后 alter table lvnian engine=innodb; alter table lvnian engine=MyISAM; 其中lvnian是表名 更改实例 ##############################

修改mysql 表引擎类型错误

mysql引擎默认类型为MyISAM, mysql>show engines; 事务隔离机制为:READ-COMMITTED(/etc/my.cnf查看) 默认建表如果不指定引擎类型,自动为MyISAM.此时想更改表为InnoDB类型.用户登陆到mysql客户端执行:mysql>alter table ATT engine = InnoDB; 则报错:ERROR 1598 (HY000): Binary logging not possible. Message: Transaction le

批量修改mysql数据库表前缀。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

查看并修改mysql的默认引擎

1.mysql存储引擎: a)mysql服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上.存储引擎负责管理数据存储,以及mysql的索引管理.通过定义的API,mysql服务器能够与存储引擎进行通信.目前使用最多的是MyISAM和InnoDB.InnoDB被Oracle收购后,mysql自行开发的新存储引擎Falcon将在mysql6.0版本引进. b)MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用.MyISAM中,一

批量建立MySQL表

今天遇到MySQL的分表问题,可以采用脚本方式循环建立新的表,也可以使用sql建立.下面以建立player_0到player_9的语句为例. delimiter // CREATE procedure create_table() BEGIN DECLARE `@i` int(11); DECLARE `@sqlstr` varchar(2560); SET `@i`=0; WHILE `@i` < 10 DO SET @sqlstr = CONCAT( "CREATE TABLE pla

phpMyAdmin批量修改Mysql数据表前缀的方法

多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分.而如何批量修改已有数据库的前缀名 呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的批量修改数据库中表前缀的方法,适用于修改数据库中相同前缀且数据表较多 的情况. 此例中假定修改名为“www_sdck_cn”的数据库中前缀为“phpcms_”的表,并将所有符合条件表的前缀修改为“sdck_”. 1.        用phpMyAdmin打开要修改前缀的数据库www_

修改mysql表的存储引擎

方法一. alter table mytable engine = InnoDB;//将mytable表引擎改为InnoDB. 方法二. 使用mysqldump 将表导出,然后修改 表create table 部分 engine 方法三. create table innodb_table like my_table;//创建一张新表 alter table innodb_table engine = InnoDB;//修改新表的存储引擎 insert into innodb_table  se

在线批量修改mysql中表结构

1.获取要修改的表的表名称登录mysql库,查询出所有表 show tables; 将需要修改表结构的表名称存放到b.txt文件中2.执行修改修改表引擎为InnoDB for i in `cat b.txt`;do /usr/local/percona-toolkit/bin/pt-online-schema-change --user=root --password=123456 --host=localhost --charset=utf8 --alter="ENGINE=InnoDB&qu