工作中遇到mysql数据库的所有表的所有varchar类型字符都不是utf8的,插入中文老是出现各种各样的问题。单个表修改吧,表太多了。目前没找到一个简单的方法,下面介绍批量修改数据库字符集的办法之一:
1、创建批量修改语句
修改单个表的字符集的命令是:alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;
创建修改语句的命令是:
select
CONCAT('alter table ',a.table_name,' convert to character set utf8mb4 collate utf8mb4_bin;')
from (select table_name from information_schema.`TABLES` where TABLE_SCHEMA = '这里写数据库的名字其他地方不用改') a;
执行完了以后会得到下面的结果:
2、批量修改
将上面的语句批量复制,然后全部执行。
我用的客户端工具是navicat。其它如workbench等随便一个都可以的,甚至命令行也是可以的