sequelize有批量更新的函数么?
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。