如何重新排列MySQL列?

wz3gfoph  于 2023-04-10  发布在  Mysql
关注(0)|答案(6)|浏览(139)

我需要移动现有列的位置(以获得更好的可见性)。
如何在不影响数据的情况下做到这一点?

e0bqpujr

e0bqpujr1#

Modify也可以。看看:

ALTER TABLE table_name MODIFY column_name column_definition AFTER other_column;

如果只是更改顺序,则必须完全重复列的完整定义。
获取column_definition的最佳方法是使用SHOW CREATE TABLE table_name转储表定义。

ui7jx7zq

ui7jx7zq2#

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

ALTER TABLE foo
CHANGE COLUMN bar
bar COLUMN_DEFINITION_HERE
FIRST;

或者如果你想要它 * 在 * 某个其他列之后:

... AFTER OTHER_COLUMN;
xdnvmnnf

xdnvmnnf3#

1.先修改表table_name修改column_name column_datatype;
1.修改表table_name修改column_name column_datatype在other_column_name之后;

jdzmm42g

jdzmm42g4#

基于@VKGS的回答:
如果你的表名为language的是:

|      description    |         name     |
|---------------------|------------------|
|      fbi agent      |         jane     |
|---------------------|------------------|
|      mi6 agent      |         kurt     |
|---------------------|------------------|

如果你想把name列作为第一列,而不是description列,执行以下命令:

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

别忘了列的类型。

suzh9iv8

suzh9iv85#

下面是SQL查询:

ALTER TABLE table_name MODIFY COLUMN misplaced_column Column-definition AFTER other_column;

这里的 Column-definition 是完整的列定义。要查看列定义,如果你使用phpMyAdmin,请单击结构选项卡。然后单击所需列上的更改链接。然后不修改任何东西,单击保存。它将显示SQL。复制SQL并在末尾添加AFTER other_column
如果你想把 misplaced_column 放到第一个位置,那么:

ALTER TABLE table_name MODIFY COLUMN misplaced_column Column-definition FIRST;
t3irkdon

t3irkdon6#

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

相关问题