postgres で plpgsql 関数を実行する cron ジョブがあります。この関数は、ゼロから多数のレコードをテーブルに挿入します。関数によって作成されたレコードを結果として返す最良の方法は何ですか?
私はPostgreSQL 9.1を使用しています
postgres で plpgsql 関数を実行する cron ジョブがあります。この関数は、ゼロから多数のレコードをテーブルに挿入します。関数によって作成されたレコードを結果として返す最良の方法は何ですか?
私は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();
重要な要素:
値を入れる列を作成できます。その値は、制限された値の小さなセットの 1 つです。この場合、値はレコードの作成方法のソースです。1 つの値は cron ジョブ、もう 1 つは人による挿入、またはそのテーブルにレコードを作成するその他の方法です。その後、SQL を使用して、どのレコードがいつ作成されたかを調べることができます。