工作中遇到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等随便一個都可以的,甚至指令行也是可以的