Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重新排列MySQL列?_Mysql - Fatal编程技术网

如何重新排列MySQL列?

如何重新排列MySQL列?,mysql,Mysql,我需要移动现有列的位置(以获得更好的可见性) 如何在不影响数据的情况下完成此操作?我知道的唯一方法是更改列。首先使用以下命令提取列定义并发出: 或者,如果您希望它位于某个其他列之后: ... AFTER OTHER_COLUMN; 同样有效。看看: ALTER TABLE foo MODIFY bar bartype AFTER baz; 下面是sql查询 更改表名修改列错位列定义在其他列之后 这里的列定义是完整的列定义。若要查看列定义(如果您使用的是phpmyadmin),请单击“结构”选

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


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

我知道的唯一方法是更改列。首先使用以下命令提取列定义并发出:

或者,如果您希望它位于某个其他列之后:

... AFTER OTHER_COLUMN;
同样有效。看看:

ALTER TABLE foo MODIFY bar bartype AFTER baz;
下面是sql查询
更改表名修改列错位列定义在其他列之后 这里的列定义是完整的列定义。若要查看列定义(如果您使用的是phpmyadmin),请单击“结构”选项卡。然后单击所需列上的更改链接。然后,在修改任何内容后,单击“保存”。它将向您显示sql。复制sql,只需在末尾的其他_列*后面添加*即可。就这些了

如果要将*MISPLOCED_列*置于第一个位置,则 更改表名首先修改列错位列定义

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

  • 更改表名首先修改列名列数据类型
  • 更改表格表格名称在其他列名称之后修改列名称列数据类型 基于@VKGS答案:

    如果名为语言的表是:

    |      description    |         name     |
    |---------------------|------------------|
    |      fbi agent      |         jane     |
    |---------------------|------------------|
    |      mi6 agent      |         kurt     |
    |---------------------|------------------|
    
    如果要使列名成为第一列,或在“说明”之前,执行以下操作:

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

    不要忘记列的类型。

    不重复:第一个是关于交换数据,第二个是关于“sqlyog”。保存方法是使用PHPMyAdmin的“移动列”功能:我在
    之前有问题,而我使用了
    第一个
    MySQL语法中没有BEFORE,如果您只想对列重新排序
    altertable。。。MODIFY
    更可取,因为它不会再次要求您以语法格式输入列名,您可以意外重命名列,而
    MODIFY
    则不会。有人能解释一下更改列和修改列之间的区别吗?修改是一种较轻的操作吗?它没有锁桌子吗?谢谢更新:看起来很像更改和修改是同义词,其中修改是为Oracle用户添加的。这是可行的,但请注意(至少在我的设置中)移动列会删除该列中的任何自动增量设置。如果不在alter语句中指定默认值,也会丢失默认值。
    ALTER TABLE language MODIFY description varchar(100) AFTER name;