mysql 所有 表 欄位 批量修改為utf8mb4字符集
阿新 • • 發佈:2022-11-30
之前資料 很多都是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' 複製出來 執行就好