背景:
中途进的项目组,有部分表的引擎是MyISAM,然后字符集是utf8mb4没错,但是排序规则是utf8mb4_unicode_ci
需要批量把引擎换成InnoDB,把排序规则换成utf8mb4_general_ci
1、下面的sql可以把数据库名称为”schemaName“数据库所有引擎不是InnoDB的表搜索出来
SELECT
table_name,
table_schema,
ENGINE
FROM
information_schema.TABLES
WHERE
ENGINE != 'InnoDB'
AND table_schema NOT IN ( 'mysql', 'information_schema', 'performance_schema' ) and table_schema = 'schemaName'
然后下面的sql可以修改表table_name的引擎为InnoDB
ALTER TABLE table_name ENGINE=InnoDB;
把上面两条sql合在一起,改造一下:
SELECT
CONCAT('alter table ',table_name,' ENGINE=InnoDB;')
FROM
information_schema.TABLES
WHERE
EN