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