在 SQL 中创建表后,您可能想要重命名它。如果您正在创建一个新表来替换它,或者为它想出了一个更好的名称,则可能会发生这种情况。
在本文中,您将学习在 Oracle、SQL Server、MySQL 和 PostgreSQL 中重命名表的 SQL 命令,以及每个命令的示例。
让我们进入文章。
概括
以下是在每个数据库中重命名表的命令:
| 数据库 | 命令 |
| SQL Server | |
| Oracle | |
| MySQL | |
| PostgreSQL | |
没有特定的 SQL 重命名表命令,但您可以使用 sp_rename 或ALTER TABLE 命令。
让我们更详细地了解它们并查看一些示例。
SQL Server 重命名表
要重命名SQL Server中的表,请使用 sp_rename 过程。该过程可以这样调用:
EXEC sp_rename 'schema.old_name' 'new_name';您可以在引号内指定表存在的架构以及旧的或当前的表名。然后指定新的表名。
注意:不要将架构添加到新表名中。SQL Server 会自动执行此操作,如果您添加架构名称,您最终会在您的名称中重复(例如 dbo.dbo.sales 而不是 dbo.sales)。
这是一个例子。在 dbo 模式中将“employee”表重命名为“person”:
EXEC sp_rename 'dbo.employee' 'person';然后将更新该表。
像这样的查询将从更新的表中选择数据:
SELECT *
FROM person;
Oracle SQL 重命名表
要重命名Oracle SQL中的表,请使用 ALTER TABLE 语句,方式与 MySQL 和 PostgreSQL 相同:
ALTER TABLE old_name
RENAME TO new_name;您只需添加当前表名和新表名并运行命令。无需指定架构名称。
例如将“employee”表重命名为“person”:
ALTER TABLE employee
RENAME TO person;这会将员工表重命名为人员。
您可以在新表上运行一个简单的 SELECT 查询来查看数据。
ALTER TABLE employee
RENAME TO person;
MySQL重命名表
在MySQL中重命名表是使用 ALTER TABLE 语句完成的,类似于 PostgreSQL 和 Oracle:
ALTER TABLE old_name
RENAME TO new_name;您添加表的旧名称或当前名称,以及表的新名称。
例如,要将“employee”表重命名为“person”,可以运行以下命令:
ALTER TABLE employee
RENAME TO person;这会将员工表重命名为人员。
PostgreSQL 重命名表
要重命名PostgreSQL中的表,请运行 ALTER TABLE 语句(与 MySQL 和 Oracle 相同):
ALTER TABLE old_name
RENAME TO new_name;您替换表的旧名称或当前名称以及表的新名称,然后运行该命令。
例如,要将“employee”表重命名为“person”,可以运行以下命令:
ALTER TABLE employee
RENAME TO person;这会将员工表重命名为人员。
重命名表后
运行命令重命名表后,最好更新数据库中对该表的任何引用。如果您不这样做,那么这些引用将不再有效,并且事情可能会中断。
这意味着您应该:
- 检查引用表的所有视图并更新视图以引用新名称。
- 检查任何引用旧表名的存储过程或函数,并更新它们以引用新名称
- 检查您可能正在使用的任何其他对象,例如synonyms并更新它们。
- 检查任何未存储在数据库中的可能引用该表的脚本,并更新这些脚本。
从我所见,视图和存储过程是最常见的。
结论
在 SQL 中重命名表相当容易。您可以在 Oracle、MySQL 和 PostgreSQL 中使用 ALTER TABLE 命令执行此操作,而 SQL Server 则使用 sp_rename 过程。
原文标题:SQL Rename Table: How To with Examples
原文作者:Ben Brumm
原文链接:https://www.databasestar.com/sql-rename-table/




