Sql 简明教程

SQL - Rename Table

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

The SQL RENAME TABLE Statement

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

Syntax

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

RENAME TABLE table_name TO new_table_name;

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

Example: SQL RENAME TABLE Statement

让我们使用名为 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

NAME

AGE

ADDRESS

SALARY

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;

Verification

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

SELECT * FROM BUYERS;

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

The SQL ALTER TABLE Statement

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

Syntax

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

ALTER TABLE table_name RENAME [TO|AS] new_table_name

Example: SQL ALTER TABLE Statement

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

ALTER TABLE BUYERS RENAME TO CUSTOMERS;

Verification

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

SELECT * FROM CUSTOMERS;

这将产生以下结果:

ID

NAME

AGE

ADDRESS

SALARY

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

Renaming a Table in SQL Server

没有 SQL Server 中的查询可以直接重命名表。但是,它允许您访问名为 sp_rename 的存储过程,您可以使用此存储过程重命名表。

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

Syntax

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

EXEC sp_rename 'old_table_name', 'new_table_name'

在此处,您必须确保旧表名存在于数据库中并且新表名尚未存在。否则,这将发出警告。第二点要保证的是表处于解锁状态且没有涉及此表的活动事务。

Example: Renaming a Table in SQL Server

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

EXEC sp_rename 'CUSTOMERS', 'WORKERS';

Output

获得的结果如下所示 −

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

Verification

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

SELECT * FROM WORKERS;

此操作将如下所列列出 WORKERS 表中的所有记录:

ID

NAME

AGE

ADDRESS

SALARY

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,因此如果您尝试使用旧表名来获取详细信息,这会引发错误,显示该表不存在。

Rules to be followed while renaming tables

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

  1. Avoid renaming system tables :系统表是数据库管理系统本身创建和使用的表。重命名这些表会导致数据库系统功能出现问题,因此通常不建议重命名系统表。

  2. Update all references to the table :重命名表后,任何 stored proceduresviews 、触发器或其他引用该表的数据库对象都应更新,以使用该表的最新名称。如果未更新这些引用,这会导致数据库系统功能出现错误或问题。

  3. Test thoroughly :在生产环境中重命名表之前,必须在开发或测试环境中彻底测试重命名过程,以确保已正确更新对该表的全部引用,且数据库系统仍按预期运行。

  4. Use a consistent naming convention :针对表和其他数据库对象使用一致的命名约定是一种很好的做法,因为这可以帮助您更轻松地理解和维护数据库系统。如果您需要重命名表,请考虑按照您对数据库中其他表使用的相同命名约定。

  5. Backup the database :在重命名表之前,建议您创建一个 backup of the database ,以确保在重命名过程中出现任何问题的情况下您有一个还原点。