【问题标题】:Getting error while inserting bulk data using bulkCreate in Sequelize在 Sequelize 中使用 bulkCreate 插入批量数据时出错
【发布时间】:2018-08-10 19:20:08
【问题描述】:

我正在尝试使用 Sequelize 库在数据库中插入大量数据 但是当我将一组对象传递给 bulkCreate 查询时,它显示出一些奇怪。

我有这样的功能

db.organizations
          .findAll({
            attributes: ['name'],
            where: {
              id: req.ORG_ID
            }
          })
          .then(org => {
            let i; let smsData = [];
            for (i = 0; i < user.length; i++) {
              let DefaultText = Utils.defaultMessage(
                user[i].name,
                user[i].dataValues.amount,
                org[0].name
              );
              smsData.push({
                organizationId:
                  user[i].dataValues.organizationEntries[0].organizationId,
                mobile: user[i].mobile,
                message: DefaultText,
                status: 0
              });
            }
            console.log(JSON.stringify(smsData));
            db.logSms.bulkCreate([{
              smsData
            }]).then(() => { // Notice: There are no arguments here, as of right now you'll have to...
              return db.logSms.findAll({ where: { status: 0 } });
            }).then(sms => {
              console.log(sms)
            })

我也完成了 console.log(smsData) ,它显示了对象数组,但我不明白为什么我会遇到这个错误。

插入log_sms (id,created_at,updated_at) 值 (NULL,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP); 未处理的拒绝 SequelizeDatabaseError: 字段 'mobile' 没有默认值

这个错误基本上是在执行查询时出现的,你可以在下面看到错误,因为我已经强制移动字段并且我正在传递具有手机号码的对象数组,但仍然会出现这个错误。请给点提示

【问题讨论】:

    标签: node.js express sequelize.js


    【解决方案1】:

    我弄错了,因为我应该从这个语句中删除大括号:

    db.logSms.bulkCreate([{ smsData }])
    

    应该是这样的:

    db.logSms.bulkCreate(smsData)
    

    【讨论】:

      猜你喜欢
      • 2019-11-20
      • 1970-01-01
      • 2015-03-31
      • 2015-06-16
      • 1970-01-01
      • 2018-10-13
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多