cma*_*han 47 migration null default ruby-on-rails
如果我使用迁移来更新数据库,我添加一个整数字段,如下所示:
t.integer :foo :default => 0, :null => false
Run Code Online (Sandbox Code Playgroud)
数据库中现有记录和新记录的默认状态是什么?我希望答案是: - 两者都会将foo读回为0.
是默认=> 0,如果我有:null => false?
只是想了解两者之间的区别......
Ari*_*jan 100
:null => false告诉您的数据库不要接受NULL值.
:default => 0 做两件事:
NULL在查询中指定或不指定任何内容时使用"0"作为默认值.第2点确保在保存新对象时,实际上有一个有效值.
要回答您的问题:如果您不想NULL在数据库中设置值,请设置:null => false,否则只需使用该:default参数.请注意,'0' NULL并不是一样的东西.
没有NULL值可能对索引目的很重要,或者如果您需要提供对第三方的直接数据库访问权限.
| 归档时间: |
|
| 查看次数: |
40608 次 |
| 最近记录: |