我需要移动现有列的位置(以获得更好的可见性)。
如何在不影响数据的情况下完成这项工作?
答案 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)
答案 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
,然后只需拖动列即可重新排列。
完成!