mariadb 当使用updateOnDuplicate更新特定列时,sequelize中的“afterBulkCreate”钩子始终返回_previousDataValues中的最新值

brgchamk  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(55)
Table.addHook('afterBulkCreate' , async (params , options) => {
    console.log("Table.afterBulkCreate ~ params:", params , options)
  })

  const st1 = await Table.bulkCreate(params, {
      updateOnDuplicate: ["metrics", "status" ]
    })

字符串
dataValues_previousDataValues是类似的,_changed: Set(0) {},也是空集。即使行被正确更新。
我试过使用individualHooks: true,它提供了单独的钩子,但仍然没有以前的值。可能是bulkCreate不会给previousValues,它使用DUPLICATE KEY更新。我也试过使用afterUpdate钩子,这个钩子没有被触发。
我正在尝试为以前和当前值创建审核日志。

xsuvu9jc

xsuvu9jc1#

您可以使用beforeBulkCreate钩子,在其中可以对表进行查找查询以获取以前的值。

Table.beforeBulkCreate(async (params,options) => {
  const previousRecords = await Table.findAll();
})

字符串

相关问题