データベース内のすべてのテーブル名を照会するステートメント:
# 更改 DATABASE_NAME
SELECT TABLE_NAME from information_schema.`TABLES` WHERE TABLE_SCHEMA = 'DATABASE_NAME';
テーブル名を上記のステートメントに接続して、テーブルのエンコーディング(文字セット)とテーブル内のすべてのフィールドのエンコーディング(文字セット)を変更し、次のステートメントを取得します。
# 根据转换字符集 修改 utf8mb4 ---> utf8mb4_general_ci
SELECT
CONCAT(
'ALTER TABLE ',
TABLE_NAME,
' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'
)
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = 'DATABASE_NAME'; # 更改 DATABASE_NAME
ステートメントの実行によって得られた結果セットは、データベースで実行できるバッチ更新ステートメントとしてコピーされます。