【问题标题】:How to change the column position of MySQL table without losing column data?如何在不丢失列数据的情况下更改 MySQL 表的列位置?
【发布时间】:2012-05-29 22:33:43
【问题描述】:

我想在不丢失数据的情况下更改数据库表的列位置。

例如:

当前表:

+----+------+-------+----------+
| id | name | email | password |
+----+------+-------+----------+

+----+----------+------+-------+
| id | password | name | email |
+----+----------+------+-------+

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    试试这个:

    ALTER TABLE table_name MODIFY password varchar(20) AFTER id
    

    【讨论】:

    • 这是否会重置最初设置了table_name 的记录?
    • @fungusanthrax 是的,确实如此。
    • 如给定的,Type 以外的字段属性将设置为默认值,并且 Comment 将丢失。您可能需要使用
      ALTER TABLE table_name MODIFY field_name varchar(20) NOT NULL DEFAULT '' COMMENT 'Comment going here' AFTER id
    • 或者ALTER TABLE table_name MODIFY column_name varchar(20) FIRST;,如果你想让它成为第一列。
    【解决方案2】:

    赫拉曼的回答是正确的;但如果您使用的是 phpMyAdmin,有一种直观且实用的方法可以做到这一点。

    1. 打开表格
    2. 选择“结构”标签
    3. 点击“移动列
    4. 拖放列名

    【讨论】:

    • 你是怎么找到“移动列”选项的。
    • @SouravSarkar ıt 应该在显示结构的表格下方。但可能存在版本差异。
    • 您在哪个@version 中看到了该选项?
    • @SouravSarkar 我目前使用的是 4.5.4.1 版,但我也很确定它已经存在了很长一段时间(可能从 4.0 版开始)。
    • 嗨@David。恐怕事实并非如此。在 Browse 选项卡上重新排序表列不会更改实际的列顺序,而是留下关于如何显示列顺序的 phpMyAdmin 说明。如果您之后尝试使用其他工具(例如 DataGrip)查看表格,您将看到列顺序未更改。 “结构”选项卡上的“移动列”按钮是正确的方法。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      另外,你可以这样做:

      ALTER TABLE table_name CHANGE COLUMN column_name column_name data_type AFTER another_column_name;
      

      【讨论】:

        【解决方案5】:

        您可以使用修改/更改关键字。

        ALTER TABLE [table] CHANGE COLUMN [column] [column] [column definition] AFTER [column]
        
        ALTER TABLE [table] MODIFY COLUMN [column] [column definition] AFTER [column]
        

        例如:

        ALTER TABLE table_name MODIFY password varchar(20) AFTER id
        
        ALTER TABLE table_name MODIFY password varchar(20) varchar(20) AFTER id
        

        【讨论】:

          【解决方案6】:

          如果您像我一样,使用 MySQL 工作台并在尝试实现 @Mohemmed Niyaz 答案时迷路了, 您可以按照以下步骤操作,

          • 点击左上角的架构
          • 找到并选择您的数据库,然后找到并选择您要修改的表
          • 当您将鼠标悬停在表格名称上时,您会看到三个图标,单击设置(即中间的那个),或者您可以右键单击并选择Alter Table ,
          • 然后单击列并将其拖动到您希望列所在的位置。
          • 您会在右下角看到应用(单击并应用?)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-08-23
            • 2015-05-18
            • 1970-01-01
            • 2023-02-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多