MySQL改字段名必须用CHANGE而非RENAME COLUMN因后者仅支持8.0且不能改类型或约束CHANGE需重复写旧名与新名并显式重申全部属性类型、NULL/NOT NULL、DEFAULT、COMMENT等否则易导致空值允许、默认值丢失等问题且会锁表重建。MySQL 修改字段名必须用 CHANGE不能只用 RENAME COLUMNMySQL 8.0 确实支持 RENAME COLUMN但它只能改名、不能改类型或约束而实际中多数人想改字段名时顺手也想调类型、加 NOT NULL 或改默认值——这时必须用 CHANGE。否则会报错ERROR 1064 (42000): You have an error in your SQL syntax。常见错误现象直接写 ALTER TABLE t1 RENAME COLUMN old_name TO new_name;结果发现字段没变、或者提示语法不支持尤其在 MySQL 5.7 或更低版本。CHANGE 要求你**重复写两次字段名**第一次是旧名第二次是新名哪怕只改名不改类型也得把原定义再写一遍如果只想改名且保持所有属性不变最安全的做法是先用 SHOW CREATE TABLE table_name; 查出完整字段定义再套进 CHANGEMySQL 5.7 及更早版本不支持 RENAME COLUMN强行用会直接报错不是警告用 CHANGE 改字段名时类型和属性必须显式重写CHANGE 的语法本质是「删除旧字段 新增同名字段」所以它强制你提供完整的列定义。哪怕只是把 user_name 改成 username也得把类型、是否允许 NULL、默认值等全写出来。示例要把 users 表里的 user_name类型 VARCHAR(50)允许 NULL改成 usernameALTER TABLE users CHANGE user_name username VARCHAR(50) NULL;注意NULL 或 NOT NULL 必须明确写出否则默认变成 NULL即使原字段是 NOT NULL。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。