我正在尝试将 MySQL 数据库以及所有包含表的字符集和排序规则从utf8 / utf8_unicode_ci转换为utf8mb4 / utf8mb4_unicode_ci。
我将我的数据库名称称为:MyDB
我将我的表称为:MyTable1 [、MyTable2、MyTable3等]
我已经使用以下命令设置了数据库字符集和排序规则:
ALTER DATABASE MyDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
然后我使用这个 SQL 脚本生成所有表命令:
SELECT CONCAT("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ",
"ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ")
AS alter_sql
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'MyDB';
Run Code Online (Sandbox Code Playgroud)
此 SQL 生成了一个包含以下内容的表:
ALTER TABLE MyDB.MyTable1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE MyDB.MyTable1 CONVERT TO CHARACTER SET utf8mb4 …
Run Code Online (Sandbox Code Playgroud)