如何更改列的顺序

我通过rails控制台中的’MODEL.all’命令获取数据

当我在rails控制台中运行MODEL.all时,我想将列’cgi_name’置于第3位

我使用postgres作为我的数据库

怎么弄呢?

在此处输入图像描述

简单的答案是YOU CANNOT

使用Model.all选择时,无法重新排序要显示的列名。

否则,您可以通过按所需顺序选择每列来重新排序。

 Model.select("column1, column2, cgi_name, column4 etc..") 

希望能帮助到你 :)

要直接回答您的问题,您必须在数据库级别移动列

目前, 我只知道MYSQL支持此function :

 ALTER TABLE Employees CHANGE COLUMN empName empName VARCHAR(50) AFTER department; 

据我所知,Postgres 不支持此function :

许多刚接触postgresql的人经常会问是否支持更改表中的列位置。 目前它没有; 如果要更改列位置,则必须重新创建表,或添加新列并移动数据

在视图中,您必须手动显示列,或创建辅助方法以按您选择的顺序循环显示它们