我正在从 MySQL 迁移到 PosgreSql,并且我想在批量更新中调用的 proc/function 有一个小问题。
当 Postgresql 函数似乎总是返回一个值时,即使您声明该值是无效的,我如何才能对它执行更新。
这只是一个简单的例子来说明问题。
CREATE OR REPLACE FUNCTION update_function(
IN i_id bigint)
RETURNS void AS $$
DECLARE
d_id bigint;
BEGIN
UPDATE test_table set id = '' where id = i_id;
RETURN;
END;
$$ LANGUAGE plpgsql;
如果我使用 SpringTemplate.update() 方法调用它,则会出现错误“org.postgresql.util.PSQLException:预期没有结果时返回结果”。如果您调用 update 并返回一个值,则会引发错误,我理解,所以。
我的问题是,postgresql 函数是否有任何方法不返回值,或者我需要找到另一种方法来进行批量更新?我应该提到,我想使用函数进行更新的原因是在 proc/function 中有许多表正在更新,上面只是一个简单的解释。
另一种方法可以让我解析输入值数组并循环它们。