2

postgres で plpgsql 関数を実行する cron ジョブがあります。この関数は、ゼロから多数のレコードをテーブルに挿入します。関数によって作成されたレコードを結果として返す最良の方法は何ですか?

私はPostgreSQL 9.1を使用しています

4

2 に答える 2

6

幸いなことに、それはかなり簡単に行うことができます。たとえば、テーブルに挿入しています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();

重要な要素:

RETURNS SETOF insert_tbl
RETURN QUERY
RETURNING *

于 2013-02-01T04:04:14.460 に答える
0

値を入れる列を作成できます。その値は、制限された値の小さなセットの 1 つです。この場合、値はレコードの作成方法のソースです。1 つの値は cron ジョブ、もう 1 つは人による挿入、またはそのテーブルにレコードを作成するその他の方法です。その後、SQL を使用して、どのレコードがいつ作成されたかを調べることができます。

于 2013-01-31T21:11:17.967 に答える