我正在尝试使用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),它显示了对象数组,但我无法理解为什么我会遇到这个错误。
INSERT INTO log_sms
(id
,created_at
,updated_at
)VALUES(NULL,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);
未处理的拒绝SequelizeDatabaseError:Field&#39; mobile&#39;没有默认值
这个错误基本上就像执行查询一样,因为我可以看到错误,因为我已经使移动字段成为必需的,并且我传递了具有移动号码的对象数组,但仍然会出现此错误。请给出一些提示
答案 0 :(得分:0)
我犯了错误,因为我应该从这句话中删除括号:
db.logSms.bulkCreate([{ smsData }])
它应该是这样的:
db.logSms.bulkCreate(smsData)