我想把 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
smallint
第二种方法是直接把它设置成bigint了。
跑我给的脚本,结果如下
my_id1 | smallint | my_id2 | bigint |
建议:以后这种问题最好还是自己动手去试一下,随便一个 migration 就可以试出来了。社区里面的高手都很忙,他们也不可能知道所有东西,所以他们要回答你的问题如果没有相关的经历可能都需要自己试了一遍才能够回答,懒得试的估计就直接忽略你的问题了。而这部分工作应该你自己来做,真的遇到问题再把问题和代码贴出来,这对大家都有好处。提问的话建议参考管理员的 提问的智慧。
好的,非常感谢!!