MySQL修改表名rename table命令
时间:2026-11-15 07:14 作者:emer 分类: MySQL
前言
重构、归档、切换版本时需要改表名,RENAME TABLE 原子完成,比先 CREATE 再 DROP 安全。本文讲解单表改名、多表同时重命名、保留数据、注意外键和权限。
操作步骤
1. 单表重命名
RENAME TABLE orders TO orders_2026;
2. 多表原子重命名
RENAME TABLE old_a TO new_a, old_b TO new_b;
3. 改名后验证
SHOW TABLES;
DESC orders_2026;
4. 配合视图/存储过程
改名后引用旧表名的视图、程序会失效,需同步更新。
5. 跨库移动表
RENAME TABLE db1.orders TO db2.orders;
6. 事务性说明
RENAME TABLE 是原子操作,中途不会留下半截表。
常见坑
- 程序里硬编码旧表名,改名后报表不存在。
- 外键引用旧表,改名需先处理约束。
- 视图、触发器、存储过程仍指向旧名。
- 多表同时改名用一条语句,保证原子性。
- 跨库改名要求目标库和权限就绪。
- 大表改名瞬间锁元数据,低峰操作。
- 备份策略里的表名规则要同步更新。
总结
RENAME TABLE 原名 TO 新名 原子改名,多表用逗号并列。改名前排查视图、外键、程序硬编码引用,改完同步更新。大表在低峰执行,跨库移动同样适用。
遇到问题加QQ23979811 协助处理
标签: MySQL rename table 重命名 表