【问题标题】: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

nulladmin 列的值是否有可能?

如果我像这样添加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。

谢谢。

【问题讨论】:

    标签: mysql ruby-on-rails ruby migration


    【解决方案1】:

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

    如果您使用default 选项而没有null: false 选项,则admin 可能包含null

    如果同时使用defaultnull 选项,显然不能包含null:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 2011-04-23
      • 2010-09-14
      相关资源
      最近更新 更多