mysql 所有 表 字段 批量修改为utf8mb4字符集

之前数据 很多都是utf8 不支持表情 零零碎碎改了一部分 总是有问题 需要全部修改为utf8mb4

相较原文章 修改了一点点 条件加了数据库和不为utf8mb4的筛选

#改变字段数据

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 not rlike 'mb4' and TABLE_SCHEMA = '要修改的数据库名';

#改变表

表只需要设置排序规则 字符集会自动设置到对应的标准

SELECT TABLE_SCHEMA '数据库',TABLE_NAME '表',TABLE_COLLATION '原排序规则',CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.', TABLE_NAME, ' COLLATE=utf8mb4_general_ci;') '修正SQL'
FROM information_schema.`TABLES`
WHERE TABLE_COLLATION not RLIKE 'mb4' and TABLE_SCHEMA = '要修改的数据库名';

我是用的navicat 还是比较方便的  把结果 '修正sql' 复制出来 执行就好

posted @ 2022-11-30 14:40  niniko  阅读(1135)  评论(0编辑  收藏  举报