Node pg update multiple rows in one query (error: operator does not exist: text = integer)

Node pg update multiple rows in one query (error: operator does not exist: text = integer)

我有以下查询:

UPDATE test_schema.test_table as t SET
  test_row_value2 = c.test_row_value2
FROM (values
  (, , ), (, , )
) as c(id, test_row_value1, test_row_value2)
WHERE c.id = t.id
  AND c.test_row_value1 = t.test_row_value1
RETURNING *

我的参数如下:

[
  72,
  'table_name',
  'test_table',
  'database_name',
  'test_database'
]

当我运行使用节点pg(版本8.7.3)进行查询时,出现以下错误:

error: operator does not exist: text = integer

根据我的测试,我发现这是由于以下几行造成的:

test_row_value2 = c.test_row_value2
c.id = t.id
c.test_row_value1 = t.test_row_value1

如果我对上述行的右侧进行参数化,我不会收到错误,但也不会更新任何内容。我 运行 在 PGAdmin 中使用硬编码值进行查询,并且查询工作正常并且所有内容都正确更新。我在节点 pg 中做错了什么?

我不得不更改这部分查询:

c.id = t.id

以下内容:

c.id = t.id::int

注意 ::int 部分。我不确定为什么节点 pg 需要强制转换,但现在一切似乎都运行良好。