当 add_column 使用默认选项并且没有 null:false 时是不是有可能插入 null
Posted
技术标签:
【中文标题】当 add_column 使用默认选项并且没有 null:false 时是不是有可能插入 null【英文标题】:Is there a possibility that null is inserted when add_column with default option, and without null:false当 add_column 使用默认选项并且没有 null:false 时是否有可能插入 null 【发布时间】:2021-12-20 12:32:09 【问题描述】:当我迁移文件以将列添加到现有数据时,
class AddAdminToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :admin, :boolean, default: false
end
end
null
到 admin
列的值是否有可能?
如果我像这样添加null: false
选项,
class AddAdminToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :admin, :boolean, default: false, null: false
end
end
我可以理解admin
列从不包含null
。
但是,如果我添加带有default
选项且没有null: false
选项的列,我想知道admin
包含null
的可能性。
数据库是 mysql。
谢谢。
【问题讨论】:
【参考方案1】:我尝试使用 SQLite,但我认为它同样适用于 MySQL。
如果您使用default
选项而没有null: false
选项,则admin 可能包含null
:
如果同时使用default
和null
选项,显然不能包含null:
【讨论】:
以上是关于当 add_column 使用默认选项并且没有 null:false 时是不是有可能插入 null的主要内容,如果未能解决你的问题,请参考以下文章