1. 程式人生 > 其它 >mysql 所有 表 欄位 批量修改為utf8mb4字符集

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' 複製出來 執行就好