如何重新排列MySQL列?

How to rearrange MySQL columns?

我需要移动现有列的位置(以获得更好的可见性)。

如何在不影响数据的情况下完成此操作?


修改也可以。看看:

1
ALTER TABLE foo MODIFY bar bartype AFTER baz;


我知道的唯一方法是更改??列。您将首先使用SHOW CREATE TABLE提取列定义并发出ALTER TABLE

1
2
3
4
ALTER TABLE foo
CHANGE COLUMN bar
bar COLUMN_DEFINITION_HERE
FIRST;

或者如果要在其他特定列之后输入:

1
... AFTER OTHER_COLUMN;


  • 修改表table_name首先修改column_name column_datatype;
  • 修改表table_name修改column_name column_datatype在other_column_name之后;

  • 基于@VKGS答案:

    如果您的表格所用语言为:

    1
    2
    3
    4
    5
    6
    |      description    |         name     |
    |---------------------|------------------|
    |      fbi agent      |         jane     |
    |---------------------|------------------|
    |      mi6 agent      |         kurt     |
    |---------------------|------------------|

    并且您要将列名设为第一列或在描述之前,执行以下命令:

    1
    ALTER TABLE language MODIFY description varchar(100) AFTER name;

    别忘了列的类型。


    这是sql查询
    ALTER TABLE table_name修改列misplaced_column列定义AFTER other_column;
    在Column-definition中,是完整的列定义。要查看列定义(如果使用的是phpmyadmin),请单击"结构"选项卡。然后单击所需列上的更改链接。然后用任何东西修改,单击"保存"。它将向您显示sql。复制sql,然后在末尾添加* AFTER other_column *。就是全部了。

    如果您想将* misplaced_column *带到第一个位置,则
    ALTER TABLE table_name修改列misplaced_column列定义为FIRST;

    但是,这似乎是一个重复的问题。