【问题标题】:How to change the column's position in table如何更改列在表格中的位置
【发布时间】:2014-11-12 17:55:11
【问题描述】:

如果我有一张桌子User

一开始有2列phoneaddress

稍后我需要一个新的专栏name

如何添加新列并将新列放在首位。

我知道如何添加新列

add_column :users, :name, :string

但不知道如何改变它的顺序。

因为它默认会追加到最后一个位置。

我读了一本书'head first SQL'

它告诉我,最好将主键放在首位

【问题讨论】:

  • wiki.postgresql.org/wiki/Alter_column_position 为什么要更改列位置?
  • 我真的很想知道为什么要更改列位置?只是想知道为什么??
  • 你的主键默认(和约定)是id,它在第一位。
  • 那么,您创建了一个没有主键的表?我希望您处于早期开发阶段,我建议您在完成表设计后,放弃您的表,重新考虑您的域模型并重新创建它。
  • 依赖于列顺序位置的代码是 IMO 损坏代码。

标签: ruby-on-rails postgresql


【解决方案1】:

使用:first 选项

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

【讨论】:

  • 鉴于在 SQL 级别是不可能的,这应该如何工作?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 2018-05-13
    • 2022-01-16
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多