问题描述
嗨,我正尝试使用原始sql的续集来更新表中的两个数据点,如下所示:
await db.sequelize.query(`UPDATE Person SET status=:status WHERE loginName IN(:loginName)`,{
replacements: {
status: 'inactive',loginName: ['name1','name2']
},type: sequelize.QueryTypes.BULKUPDATE
});
我应该使用sequelize.QueryTypes.BULKUPDATE
还是仅使用sequelize.QueryTypes.UPDATE
?我不熟悉使用哪一个,因为我只是用WHERE条件更新了两行,而不是一堆数据。
编辑:不仅会给出解决方案,而且会说明背后的原因/概念的答案将被选择。
解决方法
Sequelize原始查询返回包含[results,metadata]
的数组。由于您正在执行UPDATE
查询,并且似乎不需要结果,因此无需设置options.type
。
根据序列docs,查询类型“影响结果在传递回结果之前的格式”,并且“ Sequelize.QueryTypes
作为便捷快捷方式提供。”