本文探讨了一系列重命名 MySQL 表的流行方法,并提供了对初学者和有经验的用户都可能有用的实用示例。
在我们之前的一篇文章中,我们详细研究了如何在 MySQL 中重命名数据库。在本文中,我们将特别关注在 MySQL 中重命名表。
重命名表操作很常见。很多时候,随着业务情况和业务需求的变化,改变 MySQL 数据库中表的名称变得很有必要,以便它们具有更有意义的名称或更好地反映存储在其中的信息的本质。
在开始更改 MySQL 中的表名之前,请记住保护自己并仔细评估风险。您需要分析使用该表的进程。如果您重命名表,则还需要更改引用该表的代码。而这只是故事的一半!此外,您将不得不更改引用相关表的其他数据库对象,例如视图、存储过程、触发器、外键等。
听起来很复杂?把自己绑起来,紧紧抓住!在这一章中,我们详细探讨了 MySQL 重命名表操作。
目录导读
MySQL RENAME TABLE 查询语法
MySQL中更改表名的语法如下:
RENAME TABLE table_name_old TO table_name_new;
如果您忘记了要重命名的表的确切名称,可以使用 SHOW TABLES 语句。
以下是获取所有数据库表名称的语法:
SHOW TABLES
{FROM | IN} database_name
假设我们要找出sakila数据库中所有表的名称。
SHOW TABLES
FROM sakila
重命名表规则(最大长度和小写问题)
在 MySQL 中重命名表时,请记住一些重要规则:
- MySQL 中表名的最大长度为 64 个字符。
- 旧表(table_name_old)必须存在于数据库中,而新表(table_name_new)必须不存在。
- 要成功重命名表,您必须拥有原始表的 ALTER 和 DROP 权限,以及新表的 CREATE 和 INSERT 权限。
- 不能使用 RENAME TABLE 语句重命名临时表。请改用 ALTER TABLE。
- MySQL 表名的敏感度取决于主机上的操作系统。例如,表名在 Windows 中不区分大小写,但在大多数 Unix 版本中区分大小写。但是,即使在不区分大小写的平台上,也不建议在同一语句中使用不同大小写来引用相同的表名。为了避免可能由表名大小写差异引起的问题,最好采用一致的约定,例如始终使用小写字母创建和引用表。
如何使 MySQL 表名不区分大小写?
- 导航到并打开 /etc/mysql/my.cnf 文件。
- 设置 MySQL 变量 lower_case_table_names=1。
- 重新启动服务器。
在 MySQL 示例中重命名表
现在,让我们在sakila数据库中创建并重命名一个表:
USE sakila
CREATE TABLE IF NOT EXISTS orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL,
date DATE,
due_date DATE,
status TINYINT NOT NULL,
priority TINYINT NOT NULL,
description TEXT,
quantity INT
) ENGINE=INNODB;
然后重命名它:
RENAME TABLE orders TO product_orders;
重命名数据库中的多个表
请记住,在 MySQL 中,您可以在单个语句中重命名多个表:
RENAME TABLE table_name_old_1 TO table_name_new_1,
table_name_old_2 TO table_name_new_2,
table_name_old_3 TO table_name_new_3;
更重要的是,您可以仅使用一个事务更改数据库中所有表的名称。只需使用 SHOW TABLES 语句获取所有表名,然后按上面的语法所示重命名它们。
使用 ALTER TABLE 语句重命名 MySQL 中的表
正如我们已经提到的,RENAME TABLE 不适用于临时表。为了避免可能的错误,最好改用 ALTER TABLE 语句。
ALTER TABLE table_name_old
RENAME TO table_name_new;
如何在 MySQL Workbench 中重命名表
在 MySQL Workbench 中重命名表是一个非常简单易行的过程,然而,这背后隐藏着危险。
要使用 MySQL Workbench 工具
更改表的名称: 1. 在 MySQL Workbench Navigator 中,搜索要更改的表名称,然后单击它。
2. 单击要重命名的表旁边的扳手图标。
或者,在导航器中右键单击要重命名的表,然后单击更改表。
3. 在打开的表编辑器窗口中,更改表的名称,如下面的屏幕截图所示。
4. 单击应用。
现在关于使用 Workbench 重命名表的陷阱。不幸的是,该工具缺乏重构功能,因此您必须手动查找和编辑对重命名表的所有引用。
如何在 dbForge Studio 中更改表名
使用 dbForge Studio for MySQL,您可以忘记搜索重命名对象的引用并替换它们的繁琐时间。为了节省您的时间和精力,dbForge Studio for MySQL 自动重命名以下数据库对象:表、列、视图、别名、存储例程、局部变量、触发器、事件、UDF 和用户,甚至提供方便的预览应用它们之前的更改。
要重命名脚本中的对象:
- 右键单击它,指向Refactoring,然后单击 Rename。
或者,将指针放在数据库对象上并按F2。
- 数据库对象将以灰色突出显示。根据需要更改其名称。
- 按F2预览更改或按Enter / Tab应用更改而不预览它们。
在预览更改 - 重命名对话框中,您可以查看对重命名对象的所有引用。
- 选择所需的参考并按 应用。
正如您所看到的,与 MySQL Workbench 不同,dbForge Studio for MySQL 提供了高级重构功能,因此允许您不仅快速安全地重命名表,还可以重命名其他数据库对象。