gpt4 book ai didi

javascript - Sequelize.js : . 更新不返回受影响的行

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:53 25 4
gpt4 key购买 nike

我需要更改状态并取回受影响的行:

db.Member.update({
status: 0
}, {
where: {
id: member.id,
group_id: member.group_id,
}
}).then((updatedMember) => {
console.log("Member" + updatedMember)
// This returns 'Member 1',
// and the in the DB, the status field does change to 0

}).catch((err) => {
console.log("err " + err)
})

.then block 内,我得到 updatedMember 作为 1。另外,如果我将 status 更改为表中不包含字段的其他内容,即 joe: 0updatedMember 仍会返回 1

问题:

  1. .update可以返回受影响的对象吗?

  2. 如果我尝试更改表中不存在的字段,是否会收到错误消息?

最佳答案

如果您使用 postgres,且仅当...

根据文档( http://sequelize.readthedocs.io/en/v3/api/model/#updatevalues-options-promisearrayaffectedcount-affectedrows ),更新函数返回一个由两个对象组成的数组,第一个是受影响的行数,第二个是实际受影响的行(但仅当您使用 postgres 时)。如果您使用的是mysql,则不起作用。

因此,我认为您可以将代码更改为以下内容并且它应该可以工作:

db.Member.update({
status: 0
}, {
where: {
id: member.id,
group_id: member.group_id,
}
}).then((updatedMember) => {


//updatedMember[0] will now be 1, updatedMember[1] should be the affected row


console.log("Member" + updatedMember[1])

}).catch((err) => {
console.log("err " + err)
})

关于javascript - Sequelize.js : . 更新不返回受影响的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43145605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com