MySQL批量修改数据表的字符集及字段字符集
将批量生成的SQL语句再次执行即可
# 字段修改
SELECT TABLE_SCHEMA '数据库', TABLE_NAME '表', COLUMN_NAME '字段', CHARACTER_SET_NAME '原字符集', COLLATION_NAME '原排序规则', CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN ', COLUMN_NAME, ' ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '修正SQL' FROM information_schema.`COLUMNS` WHERE CHARACTER_SET_NAME != 'utf8' AND TABLE_SCHEMA = '数据库';
# 数据表修改
SELECT TABLE_SCHEMA '数据库', TABLE_NAME '表', TABLE_COLLATION '原排序规则', CONCAT( 'ALTER TABLE ', TABLE_NAME, ' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '修正SQL' FROM information_schema.`TABLES` WHERE TABLE_COLLATION = 'utf8' AND TABLE_SCHEMA = '数据库';
ps: 上面的生成的修改字段语句不会保留字段默认值和字段注释, 需要自行修改语句 2020年5月8日 18:20:01