我想在表中与传递给存储过程的行 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]);
我想在表中与传递给存储过程的行 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]);
使用
ANY
运算符:a_horse_with_no_name 的 ANY 答案更简洁,但我还发现在 unnest 函数前面添加 SELECT 也可以: