我有一個cron作業,在postgres中執行plpgsql函數。該函數將零到多個記錄插入到表中。返回由函數創建的記錄作爲結果的最好方法是什麼?返回由plpgsql函數插入的記錄
我使用的是PostgreSQL 9.1
我有一個cron作業,在postgres中執行plpgsql函數。該函數將零到多個記錄插入到表中。返回由函數創建的記錄作爲結果的最好方法是什麼?返回由plpgsql函數插入的記錄
我使用的是PostgreSQL 9.1
幸運的是,可以很容易地完成。說,你是插入到表insert_tbl
...
CREATE OR REPLACE FUNCTION f_ins_return()
RETURNS SETOF insert_tbl AS
$func$
BEGIN
RETURN QUERY
INSERT INTO insert_tbl
SELECT * FROM othertable LIMIT 3 -- or where ever your rows come from ...
RETURNING *;
END
$func$ LANGUAGE plpgsql;
電話:
SELECT * FROM f_ins_return();
關鍵要素:
您可以創建一個列,在其中放置一個值。該值是一小部分限制值之一。在這種情況下,這些值是記錄創建方式的來源。一個值是cron job,另一個值是人工插入或其他方式在該表中創建記錄。之後,您可以通過使用SQL的方式找出創建哪條記錄。
完美!謝謝歐文! –