sql - 返回由 plpgsql 函数插入的记录

标签 sql postgresql plpgsql postgresql-9.1 sql-insert

我有一个在 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();

关键要素:

RETURNS SETOF insert_tbl
RETURN QUERY
RETURNING *

关于sql - 返回由 plpgsql 函数插入的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633433/

相关文章:

java - SQL 异常executeQuery:17041,索引::3 处缺少 IN 或 OUT 参数

SQL 服务器 : how to work around WHERE IN limit of 128 values

java - 属性 'driverClassName' 抛出异常;无法加载 JDBC 驱动程序类 [org.postgresql.Driver]

sql-server - 在 Postgres 函数中访问返回表

postgresql - 在 plpgsql 函数中对值使用单引号

sql - 如何将此 T-SQL 代码转换为 PostgreSQL/plpgsql

sql - 用于查找数据库用户是否拥有架构的通用查询

sql - Oracle sql 列表

用于存储发送给同一个人的消息和接收到的消息的数据库模式

ruby - 每当我输入 `missing postgres.yml` 时,Rails 都不会加载默认项目模板,显示 `rails new` 文件