天天看点

mysql 批量修改整个数据库字符集

工作中遇到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;
           

 执行完了以后会得到下面的结果:

mysql 批量修改整个数据库字符集

2、批量修改

将上面的语句批量复制,然后全部执行。

我用的客户端工具是navicat。其它如workbench等随便一个都可以的,甚至命令行也是可以的