带有 WHERE .. IN 数组参数的存储过程

bau*_*dot 5 postgresql stored-procedures

我想为表中与传递到存储过程的行 id 数组匹配的每个条目设置一个布尔值。帮我破解正确的语法来完成这个任务?以下是我所得到的最接近的结果。

CREATE PROCEDURE tester (id_list bigint[])
AS
$$
UPDATE some_table
SET touched = true
WHERE id IN (unnest(id_list));
$$ LANGUAGE sql;

CALL tester(ARRAY[12, 34]);
Run Code Online (Sandbox Code Playgroud)

小智 4

使用ANY运算符:

UPDATE some_table
  SET touched = true
WHERE id = ANY (id_list);
Run Code Online (Sandbox Code Playgroud)