在MySQL中重新排序列的简便方法?

要在MySQL中重新排序列,请使用ALTER TABLE MODIFY COLUMN。语法如下-

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName data type after yourColumnName.

为了理解上述语法,让我们首先创建一个表。创建表的查询如下。

mysql> create table reOrderColumn
-> (
-> ProductId int,
-> DeliveryDate datetime,
-> ProductName varchar(100)
-> );

现在检查表的描述。查询如下。

mysql> desc reOrderColumn;

以下是输出。

+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| ProductId | int(11) | YES | | NULL | |
| DeliveryDate | datetime | YES | | NULL | |
| ProductName | varchar(100) | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
3 rows in set (0.10 sec)

现在,使用ALTER MODIFY命令对列进行重新排序。我将在ProductName列之后重新排序DeliveryDate列。查询如下。

mysql> alter table reOrderColumn modify column DeliveryDate datetime after ProductName;
Records: 0 Duplicates: 0 Warnings: 0

现在让我们检查列是否已重新排序。查询如下。

mysql> desc reOrderColumn;

以下是显示列已重新排序的输出。

+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| ProductId | int(11) | YES | | NULL | |
| ProductName | varchar(100) | YES | | NULL | |
| DeliveryDate | datetime | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)