SQL - 重命名表



SQL 提供了两种重命名 MySQL 表的方法。您可以使用 SQL RENAME TABLE 或 ALTER TABLE 语句来更改 MySQL RDBMS 中的表名。

SQL RENAME TABLE 语句

您可以使用 SQL **RENAME TABLE** 语句更改 MySQL 表名。

语法

以下是 SQL RENAME TABLE 语句的语法:

RENAME TABLE table_name TO new_table_name;

其中,**table_name** 是现有表的当前名称,**new_table_name** 是表的新名称。

示例:SQL RENAME TABLE 语句

让我们创建一个表,名称为 **CUSTOMERS**,其中包含客户的个人详细信息,包括姓名、年龄、地址和工资等,如下所示:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

现在,让我们使用 INSERT 语句将几条记录插入此表中,如下所示:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

表将如下创建:

ID 姓名 年龄 地址 工资
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

以下 SQL 查询将 **CUSTOMERS** 表的名称更改为 **BUYERS**:

RENAME TABLE CUSTOMERS to BUYERS;

验证

更改表名后,您可以开始在 SQL 查询中使用新表名。

SELECT * FROM BUYERS;

如果表名已成功更改,则它应列出 CUSTOMERS 表中所有可用的记录。

SQL ALTER TABLE 语句

**ALTER TABLE** 语句可用于更改或修改现有表的结构,即使用此语句,您可以添加/删除列、创建/销毁索引、更改现有列的数据类型、重命名列,我们甚至可以重命名表。

语法

以下是使用 SQL **ALTER TABLE** 语句重命名现有表的语法:

ALTER TABLE table_name RENAME [TO|AS] new_table_name

示例:SQL ALTER TABLE 语句

以下 SQL **ALTER TABLE** 语句会将表名从 **BUYERS** 更改为 **CUSTOMERS**。

ALTER TABLE BUYERS RENAME TO CUSTOMERS;

验证

将表名更改为 CUSTOMERS 后,您可以在 SQL 查询中使用此名称。

SELECT * FROM CUSTOMERS;

这将产生以下结果

ID 姓名 年龄 地址 工资
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

在 SQL Server 中重命名表

SQL Server 中没有可以直接重命名表的查询。但是,它确实提供了名为 **sp_rename** 的存储过程,使您可以重命名表。

**sp_rename** 是 SQL 中的系统存储过程(一组预构建的子例程,用于执行数据库内的任务),可用于重命名各种数据库对象,包括表、列、索引和约束。

语法

以下是 SQL Server 中重命名表的简单语法:

EXEC sp_rename 'old_table_name', 'new_table_name'

这里,您必须确保数据库中存在旧表名,并且新表名不存在。否则,它将发出警告。第二个要点是确保表未被锁定,并且没有涉及此表的活动事务。

示例:在 SQL Server 中重命名表

假设我们的数据库中已经存在 CUSTOMERS 表。现在,我们将使用以下查询将此表从 **CUSTOMERS** 重命名为 **WORKERS**:

EXEC sp_rename 'CUSTOMERS', 'WORKERS';

输出

获得的结果如下所示:

Completion time: 2023-08-15T19:21:49.1144163+05:30

验证

我们可以通过使用 SELECT 语句检索其内容来验证更改是否已反映,如下所示:

SELECT * FROM WORKERS;

这将列出 WORKERS 表中所有可用的记录,如下所示:

ID 姓名 年龄 地址 工资
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

因为您已将表重命名为 WORKERS,所以如果您尝试使用旧表名获取详细信息,它将抛出错误,表明表不存在。

重命名表时应遵循的规则

在 SQL 中重命名表时,应遵循一些规则和最佳实践,以确保重命名过程顺利进行,并且不会导致任何意外的后果或问题。

  • **避免重命名系统表** - 系统表是由数据库管理系统本身创建和使用的表。重命名这些表可能会导致数据库系统功能出现问题,因此通常不建议重命名系统表。

  • **更新对表的全部引用** - 重命名表后,任何引用该表的存储过程视图、触发器或其他数据库对象都需要更新为使用表的新名称。未能更新这些引用可能会导致错误或数据库系统功能出现问题。

  • **彻底测试** - 在生产环境中重命名表之前,务必在开发或测试环境中彻底测试重命名过程,以确保已正确更新对表的全部引用,并且数据库系统继续按预期运行。

  • **使用一致的命名约定** - 对于表和其他数据库对象,最好使用一致的命名约定,以便更容易理解和维护数据库系统。如果您需要重命名表,请考虑遵循您在数据库中其他表中使用的相同命名约定。

  • **备份数据库** - 在重命名表之前,建议创建数据库备份,以确保您有一个还原点;如果重命名过程中出现任何问题。

广告