# MySQL之变更操作
# 改变表字符集
# 字符集为 utf8mb4_general_ci
ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 字符集为 utf8mb4_0900_ai_ci
ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
1
2
3
4
5
2
3
4
5
# 生成变更数据库和表的SQL语句
# utf8mb4_general_ci
# mysql8: utf8mb4_0900_ai_ci
SELECT CONCAT('ALTER DATABASE `', SCHEMA_NAME, '` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;')
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys');
SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME,
'` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys');
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10