【问题标题】:How to insert a null value in Sequelize with omitNull flag?如何使用 omitNull 标志在 Sequelize 中插入空值?
【发布时间】:2019-09-04 11:27:38
【问题描述】:

如果我没有在模型的创建方法中定义它们,我有一个带有 omitNull 标志的 Sequelize 实例来插入数据库中定义的默认值。像这样:

var sequelize = new Sequelize('db', 'user', 'pw', {
  omitNull: true
})

但是如果我将它们定义为空值,我想在其他模型中插入空值。喜欢:

SomeModel.create({some_property: null});

有没有办法为模型的某些属性定义 omitNull 属性?

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    当使用omitNull = true 选项时,有一种方法可以强制 sequelize 将属性设置为 null。

    只要做这样的事情:

    SomeModel.some_property = null;
    SomeModel.save(['some_property']);
    

    这将强制 sequelize 为 some_property 创建带有 NULL 的更新/插入 SQL。

    希望对你有帮助。

    【讨论】:

    • 我今天遇到了这个问题,您的解决方案对我来说效果很好。 @vistur:请接受这个答案
    • 我不敢相信这仍然是唯一的方法,但它确实是真的......
    【解决方案2】:

    如果您使用的是 sequelize

    sequelize.options.omitNull = false;
    
    SomeModel.some_property = null;
    SomeModel.save();
    
    sequelize.options.omitNull = true;
    

    【讨论】:

      【解决方案3】:

      虽然这个问题已经很久了,也许有人需要这个..

        await User.update({
          someData: null
        },{
          omitNull: false,
          where: id,
        })
      

        await User.create({
          someData: null
        },{
          omitNull: false,
        })
      

      【讨论】:

        猜你喜欢
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多