'field list' - Knex.js 中的未知列“0”

Unknown column '0' in 'field list' - Knex.js

我有 Knex.js 有效的代码:

await knex('main_page_vouchers').del()
  .where('country_id', '=', region_id)
return knex('main_page_vouchers')
  .insert(result)

我想稍微改变一下,而不是 2 个 knex 请求,只使用一个,所以我尝试了这样的事情:

return knex('main_page_vouchers')
   .where('country_id', '=', region_id)
   .update(result)

似乎它必须做与第一个代码相同的事情,但事实并非如此,我得到一个错误:

  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column '0' in 'field list'"

那么,我怎样才能只使用 1 个 knex 请求(第一个请求有效)?

.update(objOrAnArrayOfObjects).insert() 是不同的 SQL 操作。

Insert 允许一次将多行插入数据库,因此 .insert() 允许将对象数组传递给它。

.update(obj) 将一组值更新为与查询的 where 部分匹配的行。所以传递对象数组对更新不起作用。