MySQL修改表名rename table命令 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 是原子操作,中途不会留下半截表。

常见坑

  1. 程序里硬编码旧表名,改名后报表不存在。
  2. 外键引用旧表,改名需先处理约束。
  3. 视图、触发器、存储过程仍指向旧名。
  4. 多表同时改名用一条语句,保证原子性。
  5. 跨库改名要求目标库和权限就绪。
  6. 大表改名瞬间锁元数据,低峰操作。
  7. 备份策略里的表名规则要同步更新。

总结

RENAME TABLE 原名 TO 新名 原子改名,多表用逗号并列。改名前排查视图、外键、程序硬编码引用,改完同步更新。大表在低峰执行,跨库移动同样适用。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-15 07:14 
'); })();