略微加速

略速 - 互联网笔记

mysql修改表的字符集

2026-09-16 leiting (12阅读)

标签 MySql

cms_content 表或仅 content 字段从 utf8mb3(即 MySQL 中的 utf8)修改为 utf8mb4,有以下几种方式。推荐优先使用 整表转换,以保持一致性并避免潜在问题。


推荐:整表转换为 utf8mb4

ALTER TABLE cms_content 
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

说明:

  • CONVERT TO CHARACTER SET 会同时修改表的默认字符集和所有字符类型列(包括 content)。

  • utf8mb4_unicode_ci 是通用排序规则;如需区分大小写或用其他语言规则,可换成 utf8mb4_general_ciutf8mb4_0900_ai_ci(MySQL 8.0+)等。

  • 此操作会重建表,对大表可能耗时较长,建议在低峰期执行。


备选:仅修改 content 字段

如果你确定只需要改 content 字段,且希望保留表及其他字段的原始字符集:

ALTER TABLE cms_content 
MODIFY COLUMN content LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

注意:

  • 必须显式指定 NOT NULL,因为原定义中有该约束,否则可能被改为允许 NULL。

  • 仅改单字段可能导致混合字符集,增加连接/索引复杂度,一般不推荐。


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3