如何在不丢失列数据的情况下更改MySql表的列位置?

D S*_*D S 60 mysql sql

我想更改数据库表的列位置而不会丢失数据.

例如:

当前表格:

+----+------+-------+----------+
| id | name | email | password |
+----+------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

+----+----------+------+-------+
| id | password | name | email |
+----+----------+------+-------+
Run Code Online (Sandbox Code Playgroud)

Hea*_*man 127

试试这样:

ALTER TABLE table_name MODIFY password varchar(20) AFTER id

  • 或者“ALTER TABLE table_name MODIFY column_name varchar(20) FIRST;”如果您想将其设为第一列。 (4认同)
  • @fungusanthrax 是的,确实如此。 (2认同)

Arm*_*zak 22

Hearaman的回答是正确的; 但如果你使用的是phpMyAdmin,那么有一种直观而实用的方法可以做到这一点.

  1. 打开桌子
  2. 选择" 结构 "选项卡
  3. 点击" 移动列 "
  4. 拖放列名称

移动列链接, 移动列弹出窗口

  • 嗨@David.我担心情况并非如此."浏览"选项卡上的重新排序表列不会更改实际的列顺序,而是保留有关如何显示列顺序的phpMyAdmin说明.如果您之后尝试使用其他工具(例如DataGrip)查看该表,您将看到列顺序未更改."结构"选项卡上的"移动列"按钮是正确的方法. (2认同)

Moh*_*yaz 8

如果您使用的是 MySQL 工作台,

  1. 右击表格
  2. 改变表
  3. 拖动列并重新排序
  4. 单击应用并完成