Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Ruby on rails 如何更改列';s在表中的位置_Ruby On Rails_Postgresql - Fatal编程技术网

Ruby on rails 如何更改列';s在表中的位置

Ruby on rails 如何更改列';s在表中的位置,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,如果我有一个表User 首先,它有两列phone,address 稍后我需要创建一个新列名称 如何添加新列并将新列放在第一个位置 我知道如何添加新列 add_column :users, :name, :string 但不知道如何改变它的顺序 因为默认情况下,它将附加到最后一个位置 我读了一本书“头先SQL” 它告诉我,将主键放在第一个位置是更好的做法使用:first选项 add_column :users, :name, :string, :first => true 您可以在rai

如果我有一个表
User

首先,它有两列
phone
address

稍后我需要创建一个新列
名称

如何添加新列并将新列放在第一个位置

我知道如何添加新列

add_column :users, :name, :string
但不知道如何改变它的顺序

因为默认情况下,它将附加到最后一个位置

我读了一本书“头先SQL”


它告诉我,将主键放在第一个位置是更好的做法

使用
:first
选项

add_column :users, :name, :string, :first => true

您可以在rails中使用
:after
来定位列,如下所示:

add_column :users, :name, :string, :after => :id #primary_key

为什么要更改列的位置?我真的很想知道为什么要更改列的位置?只是想知道为什么??您的主键默认(按照惯例)是
id
,并且它位于第一个位置。那么,您创建了一个没有主键的表?我希望您处于早期开发阶段&我建议您在完成表的设计后,放下表,重新考虑域模型并重新创建它。依赖于列顺序位置的代码是不完整的代码。如果在SQL级别不可能,那么这应该如何工作?