新手问题 修改字段

zhuqunwei · 2019年01月10日 · 最后由 zhuqunwei 回复于 2019年01月10日 · 1567 次阅读

我想把 int 改为 bigint,这两种方式都可以吗? 1 change_column :数据表,:字段,:integer, :limit => 8 2 change_column :数据表,:字段,:bigint 这两种方式有什么区别吗? 感谢!!!!

我对数据库也不是很熟,我试了一下两种方法都可以

class CreateExampleTable < ActiveRecord::Migration[5.1]
  def change
    create_table :example_tables do |t|
      t.integer :my_id1
      t.integer :my_id2
    end
  end
end
class ChangeColumn < ActiveRecord::Migration[5.1]
  def up
    change_column :example_tables, :my_id1, :integer, limit: 2
    change_column :example_tables, :my_id2, :bigint
  end

  def down
    change_column :example_tables, :my_id1, :integer
    change_column :example_tables, :my_id2, :integer
  end
end

第一种方法是用于限定它的最大长度,就像你设置成 8,它就会是bigint,我后来把它换成 2 它就是smallint文档在这,PS:我是在 PG 上面做的尝试。

第二种方法是直接把它设置成bigint了。

跑我给的脚本,结果如下

my_id1 | smallint |
my_id2 | bigint   |

建议:以后这种问题最好还是自己动手去试一下,随便一个 migration 就可以试出来了。社区里面的高手都很忙,他们也不可能知道所有东西,所以他们要回答你的问题如果没有相关的经历可能都需要自己试了一遍才能够回答,懒得试的估计就直接忽略你的问题了。而这部分工作应该你自己来做,真的遇到问题再把问题和代码贴出来,这对大家都有好处。提问的话建议参考管理员的 提问的智慧

lanzhiheng 回复

好的,非常感谢!!

zhuqunwei 关闭了讨论。 01月10日 12:35
需要 登录 后方可回复, 如果你还没有账号请 注册新账号