sequelize有批量更新的函数么?
发布于 7 年前 作者 iori2882 8956 次浏览 来自 问答

sequelize有批量添加的函数bulkCreate(),是不是没有批量更新的函数?这里不需要保证一次性都更新成功,如果我我直接用for循环更新,是不是会存在多个transaction啊?

6 回复

只要符合 update中的 where 条件就行, 满足一条就更新一条, 满足多条就是批量更新

在transaction里面循环,并用Promise.all()就好了

@mosaic101 你的意思是直接使用for循环就行?把没更新成功记录一下返回给前台?

用for循环update,update有返回值,可以知道是否更新成功,然后再判断就行了,建议用async/await

@iori2882 1楼说的是sequelize的update方法里面有个where参数;比如这样

this.model().update({ state }, { where: { uuid }, returning: true })

更新特定uuid的记录的state字段

多条同值的话直接update,用where控制范围就可以; 多条不同值的话可以用楼上说的for 或者 transaction逐条update。

回到顶部