在 MySQL 数据库日常维护中,更改表的名称是一项基础但重要的操作。无论是为了统一命名规范,还是重构业务模块,我们都需要用正确且安全的方式来完成表的重命名。

使用 ALTER TABLE 重命名表
最常见的方式是通过 ALTER TABLE 语句,结合 RENAME TO 子句来修改表名。这种方式语法简单,适合一次只改一个表的情况。
-- 将旧表 old_user 改名为 new_user ALTER TABLE old_user RENAME TO new_user; -- 也可以使用 RENAME AS 写法,效果相同 ALTER TABLE old_user RENAME AS new_user;
使用 RENAME TABLE 命令
如果我们需要一次性修改多个表的名称,可以使用 RENAME TABLE 语句。它能在同一个命令中完成多张表的重命名,并且原子性更好。
-- 同时修改两张表的名称
RENAME TABLE old_order TO backup_order,
old_log TO system_log;
注意事项
- 重命名表不会改动表内的数据和字段定义。
- 如果其他表通过外键关联了被改名的表,需要同步更新外键引用。
- 依赖该表的视图和存储过程可能需要手动调整。
- 执行重命名时,表会被加锁,避免在高并发写入时操作。
权限与环境影响
执行改名操作需要当前数据库账号拥有 ALTER 和 DROP 权限。在正式环境操作前,建议先在测试库验证,并确认没有定时任务或代码正指向旧表名。
用 PHP 脚本改名示例
我们还可以在程序代码中调用上述 SQL 来完成改名,下面是一段简单的 PHP 示例:
<?php
$conn = new mysqli('127.0.0.1', 'root', 'password', 'test_db');
if ($conn->connect_error) {
die('连接失败: ' . $conn->connect_error);
}
$sql = 'ALTER TABLE old_user RENAME TO new_user';
if ($conn->query($sql) === TRUE) {
echo '表名修改成功';
} else {
echo '错误: ' . $conn->error;
}
$conn->close();
?>
总结
我们如何更改 MySQL 表的名称,答案就是使用 ALTER TABLE 或 RENAME TABLE 语句。只要提前排查关联对象并避开业务高峰,就能平稳完成表名调整。
MySQLALTER_TABLErename_table修改时间:2026-07-28 08:03:19