MySQL 重命名列

2025年3月17日 | 阅读 3 分钟

有时我们的列名没有意义,因此需要重命名或更改列名。MySQL 提供了一个有用的语法,可以重命名表中的一个或多个列。在重命名列之前,需要一些权限,例如 ALTER 和 DROP 语句的权限。

MySQL 可以通过两种方式重命名列名

  1. 使用 CHANGE 语句
  2. 使用 RENAME 语句

使用 CHANGE 语句

以下是说明使用 CHANGE 语句重命名列的语法

在此语法中,我们可以看到可能需要重新指定所有列属性。此语法还允许我们更改列的数据类型。但是,有时 CHANGE 语句可能存在以下缺点

  • 列属性的所有信息可能不适用于应用程序进行重命名。
  • 存在意外更改数据类型的风险,这可能导致应用程序数据丢失。

示例

让我们通过各种示例了解 CHANGE 语句如何在 MySQL 中用于重命名列。假设我们有一个名为 balance 的表,其数据如下

MySQL Rename Column

由于某种原因,我们需要更改 列名 account_num 及其数据类型。在这种情况下,我们首先使用 DESCRIBE 语句检查表结构,如下所示

MySQL Rename Column

在此图像中,我们可以看到列名 account_num 的数据类型为 int。我们想将此列名更改为 account_no,将其数据类型从 int 更改为 varchar。因此,我们可以执行以下语句来实现此目的

执行上述命令后,我们可以再次使用 DESCRIBE 语句进行验证。在下图中,列名 account_num 及其数据类型已成功更改。

MySQL Rename Column

使用 RENAME 语句

为了消除 CHANGE 语句的缺点,MySQL 提出了以下语法,说明使用 RENAME 语句更改列名

示例

让我们通过各种示例了解 RENAME 语句如何在 MySQL 中用于更改列名。假设我们有一个名为 customer 的表,其中包含以下数据

MySQL Rename Column

假设我们想将列名 account 更改为 account_no,而无需更改其数据类型。我们可以通过执行以下语句来实现

执行上述命令后,我们可以再次使用 SELECT 语句进行验证。在下图中,列名 account 已成功更改。

MySQL Rename Column

重命名多个列

MySQL 还允许我们在单个语句中更改多个列名。如果我们要重命名多个列名,可以使用以下语法

示例

假设我们想从 customer 表中更改 列名 id 和 customer_name。要在单个语句中更改多个列名,我们可以使用以下语句

执行上述命令后,我们可以再次使用 SELECT 语句进行验证。在下图中,列名 id 和 customer_name 已成功更改。

MySQL Rename Column

让我们再次通过 RENAME COLUMN 语句更改当前正在修改的列名,如下所示

执行上述命令后,我们可以再次使用 DESCRIBE 语句进行验证。在下图中,列名 cust_id 和 cust_name 已成功更改。

MySQL Rename Column

在本文中,我们了解了 MySQL RENAME 列的介绍以及如何在指定表中更改列名,并附带了查询示例以便更好地理解。


下一主题MySQL 视图