如何在不丢失列数据的情况下更改MySQL表的列字段的位置?
我想在不丢失数据的情况下更改MySQL数据库表的列字段的位置。
举例来说:
当前表格:
+----+------+-------+----------+
| id | name | email | password |
+----+------+-------+----------+
从当前的字段顺序变成:
+----+----------+------+-------+
| id | password | name | email |
+----+----------+------+-------+
可以尝试这样做
ALTER TABLE table_name MODIFY password varchar(20) AFTER id
、正如所给出的那样,除了Type之外的字段属性将被设置为默认值,而Comment将丢失。您可能需要使用ALTER TABLE table_name MODIFY field_name varchar(20)NOT NULL DEFAULT ” COMMENT ‘Comment goes here’ AFTER id
或者ALTER TABLE table_name MODIFY column_name varchar(20)FIRST;如果你想让它成为第一列。
最好在结尾处包含一个,ALGORITHM = INPLACE,NONE = NONE
这样的做法是正确的;但是如果你使用的是phpMyAdmin,有一个直观实用的方法可以做到这一点。
- 打开表
- 选择“结构”选项卡
- 点击“移动列”
- 拖放列名称
如果你使用MySQL workbench,
- 右键单击表
- ALTER TABLE
- 拖动列并重新排序
- 单击应用并完成
阅读余下内容