有没有一种方法可以针对UUID数组更新Postgres中的行集?

时间:2019-05-27 07:33:49

标签: node.js postgresql

在更新查询中发送UUID数组时遇到问题。

我的UUID数组如下:

[
    "c5cahude-8245-49ed-b2d2-niufu",
    "b272jiopeb-486c-495f-91a4-zokxp",
    "kodeidji-1487-4d02-a958-901i9"
] 

我尝试使用.join()和.toString(),但是没有用。我的最后一个选择是通过地图功能发送内容来创建内容。我对这段代码不满意。

我当前的代码现在看起来像这样。

const params: string = _.map(ids, (s, i) => `$${i + offset}`).join(',');
const query = `update some_table set deleted = NOW(), fk_updated_by = $${ids.length + 1} where id IN(${params})`;

输出正确,但是我想实现更简单的东西。

谢谢!

1 个答案:

答案 0 :(得分:0)

准备好的语句适用于数组,因此我假设它们可以与UUID数组一起使用。

  

node-postgres支持将简单的JavaScript数组映射到PostgreSQL   数组,因此在大多数情况下,您可以像传递其他数组一样传递它   参数。

client.query("SELECT * FROM stooges WHERE name = ANY ($1)", [ ['larry', 'curly', 'moe'] ], ...);

https://github.com/brianc/node-postgres/wiki/FAQ#11-how-do-i-build-a-where-foo-in--query-to-find-rows-matching-an-array-of-values

https://node-postgres.com/features/queries#prepared-statements