📜  将 mysql 表转换为字符集 utf8mb4 - SQL (1)

📅  最后修改于: 2023-12-03 15:09:32.102000             🧑  作者: Mango

将 MySQL 表转换为字符集 utf8mb4 - SQL

当需要存储包含 Emoji 或其他特殊字符的文本数据时,MySQL 表必须使用utf8mb4字符集。转换表的字符集需要进行以下几步:

步骤一:备份数据

在进行任何数据库操作之前,务必先对数据进行备份。

mysqldump -u [username] -p [database_name] > backup.sql
步骤二:创建新表

使用以下 SQL 语句在数据库中创建一个新的表,该表的所有列都是以 utf8mb4 字符集进行编码的。

CREATE TABLE `new_table` LIKE `old_table`;
ALTER TABLE `new_table` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
步骤三:复制数据

使用以下 SQL 语句将旧表的数据复制到新表中。

INSERT INTO `new_table` SELECT * FROM `old_table`;
步骤四:删除旧表并更名新表
DROP TABLE `old_table`;
RENAME TABLE `new_table` TO `old_table`;

现在,您的表已成功转换为 utf8mb4 字符集!特别注意的是,如果字符列包含索引、外键或触发器,这将需要更多的额外的步骤。

参考文献:How to Convert MySQL Tables to utf8mb4 Character Set