首页 > 解决方案 > 当 add_column 使用默认选项并且没有 null:false 时是否有可能插入 null

问题描述

当我迁移文件以将列添加到现有数据时,

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。

谢谢你。

标签: mysqlruby-on-railsrubymigration

解决方案


我尝试使用 SQLite,但我认为它同样适用于 MySQL。

如果您使用defaultoption 而没有null: falseoption,则 admin 可能包含null

在此处输入图像描述

如果同时使用defaultandnull选项,很明显不能包含 null:

在此处输入图像描述


推荐阅读