2
我想要一个相当通用的函数,它需要INSERT
,UPDATE
或DELETE
,它可能包含一个RETURNING
子句,并返回该结果。一个相当人为的例子可能是这样的:如何从plpgsql函数返回RETURNING子句的结果?
CREATE FUNCTION my_insert(sql_insert TEXT) RETURNS record AS $$
DECLARE
result record;
BEGIN
EXECUTE sql_insert INTO result;
RETURN result;
END;
$$ LANGUAGE plpgsql;
SELECT my_insert('INSERT INTO foo VALUES (1) RETURNING some_column, another_column');
虽然这个工程确定,我不认为record
是正确的类型在这里,因为RETURNING
通常会返回一个表型。我想从RETURNING
的函数中返回完全相同的格式,但我不知道如何。
“RETURNING INTO”表单在这里工作吗? – JimB 2014-09-05 16:18:54
你考虑过'SETOF RECORD'吗? – Wolph 2014-09-05 16:18:59
函数没有多态返回。相关:[PostgreSQL:如何在不使用“列定义列表”的情况下从表中返回动态行?](http://stackoverflow.com/questions/22861143) – 2014-09-05 16:23:29