如何重新排列Mysql列?

时间:2010-05-29 08:08:00

标签: mysql

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

如何在不影响数据的情况下完成这项工作?

6 个答案:

答案 0 :(得分:52)

Modify也有效。看看:

ALTER TABLE foo MODIFY bar bartype AFTER baz;

答案 1 :(得分:51)

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

ALTER TABLE foo
CHANGE COLUMN bar
bar COLUMN_DEFINITION_HERE
FIRST;

或者如果您想要之后某个其他列:

... AFTER OTHER_COLUMN;

答案 2 :(得分:6)

  1. 更改表table_name首先修改column_name column_datatype;
  2. 更改表table_name修改column_name column_datatype在other_column_name;
  3. 之后

答案 3 :(得分:1)

这是sql查询
ALTER TABLE table_name MODIFY COLUMN misplaced_column列定义AFTER other_column; 这里的列定义是完整的列定义。要在使用phpmyadmin时查看列定义,请单击结构选项卡。然后单击所需列上的更改链接。然后使用modifyig任何东西点击保存。它会告诉你sql。复制sql并在最后添加* AFTER other_column *。这将是全部。

如果您想将* misplaced_column *带到第一个位置,那么 ALTER TABLE table_name MODIFY COLUMN misplaced_column列定义FIRST;

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

答案 4 :(得分:0)

基于@VKGS答案:

如果您名为语言的表格是:

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

您想将列名设为第一列或在描述之前,执行以下操作:

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

别忘了列的类型。

答案 5 :(得分:0)

我刚刚找到了一种更简单的方法!

转到 Structure 并单击 Move Columns,然后只需拖动列即可重新排列。

完成!