How to rearrange MySQL columns?

前端 未结 5 1501
闹比i
闹比i 2020-12-01 03:35

I need to move the position of existing columns (for better visibility).

How can this be done without affecting the data?

相关标签:
5条回答
  • 2020-12-01 03:41

    The only way I know is to change the column. You would first extract your column definition using SHOW CREATE TABLE and issue an ALTER TABLE:

    ALTER TABLE foo
    CHANGE COLUMN bar
    bar COLUMN_DEFINITION_HERE
    FIRST;
    

    Or if you want it after a certain other column:

    ... AFTER OTHER_COLUMN;
    
    0 讨论(0)
  • 2020-12-01 03:41

    Based on @VKGS answer:

    If your table called language is:

    |---------------------|------------------|
    |      description    |         name     |
    |---------------------|------------------|
    |      object ...     |         java     |
    |---------------------|------------------|
    |      javascript...  |         nodejs   |
    |---------------------|------------------|
    

    And you want to make the column name the first column or before description, execute this:

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

    Don't forget type of the column.

    0 讨论(0)
  • 2020-12-01 03:51
    1. Alter Table table_name modify column_name column_datatype first;
    2. Alter Table table_name modify column_name column_datatype After other_column_name;
    0 讨论(0)
  • 2020-12-01 04:03

    Here is the sql query
    ALTER TABLE table_name MODIFY COLUMN misplaced_column Column-definition AFTER other_column; Here in Column-definition is full column definition. To see the column definition if you are using phpmyadmin click on structure tab. Then click on change link on desired column. Then withour modifyig any things click save. It will show you the sql. Copy the sql and just add *AFTER other_column* at the end. It will be all.

    If you like to bring the *misplaced_column* to the first position then ALTER TABLE table_name MODIFY COLUMN misplaced_column Column-definition FIRST;

    However, It seems it is a duplicate question.

    0 讨论(0)
  • 2020-12-01 04:06

    Modify also works. Have a look:

    ALTER TABLE foo MODIFY bar bartype AFTER baz;
    
    0 讨论(0)
提交回复
热议问题