mysql中重命名表使用 RENAME table语句,支持单表、多表原子性重命名及跨库移动;需权限校验,新表名不可存在,且视图等 对象 需手动更新。

在 MySQL 中重命名数据表,使用 RENAME TABLE 语句,这是标准、安全且高效的方式。
基本重命名语法
最常用的写法是:
- RENAME TABLE old_table_name TO new_table_name;
例如,把表 user_info 改名为 users:
RENAME TABLE user_info TO users;
一次重命名多个表
MySQL 允许在一个语句中批量重命名多个表,格式为:
- RENAME TABLE t1 TO t2, t3 TO t4, t5 TO t6;
注意:所有重命名操作是原子性的,即全部成功或全部失败,不会出现部分生效的情况。
跨 数据库 重命名(移动表)
如果目标表名包含数据库名,可以实现“移动”表到另一个数据库(要求用户有目标库的权限):
- RENAME TABLE db1.table1 TO db2.table1;
这相当于把 table1 从 db1 搬到 db2,原库中不再存在该表。
注意事项与 常见问题
执行前需确保:
- 当前用户对原表有
ALTER和DROP权限,对新表名所在数据库有CREATE权限; - 新表名不能已存在(除非用
RENAME TABLE …… TO ……覆盖,但会直接替换,慎用); - 表被锁定或正在被大量写入时,重命名会等待锁释放,建议在低峰期操作;
- 视图、存储过程、外键约束等不会自动更新,需手动检查并调整相关对象。