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

您可以创建一个在其中放置值的列。该值是一小组受限值之一。在这种情况下,这些值是创建记录的方式的来源。一个值是 cron 作业,另一个值是人工插入或在该表中创建记录的其他方式。之后,您可以使用 SQL 找出在何时创建了哪条记录。

于 2013-01-31T21:11:17.967 回答