0

是否可以生成一个新进程来从 postgress 函数中运行函数?还是根据文档,我是否仅限于发起请求的每个数据库连接一个线程?

单独的进程正在创建和填充动态命名的表,不返回任何数据,并且独立于生成函数。在 Postgresql 8.3 上。

4

3 回答 3

2

A procedural language should do the trick, e.g. an untrusted one such as PL/PerlU.

Other potential options include Pl/Python, Pl/Ruby, Pl/SH....

于 2013-11-14T06:48:15.267 回答
1

不要这样做。如果您生成一个单独的进程,它将弄乱您拥有的任何事务假设。在同一个过程中完成所有操作。如果必须,请查看 Listen/Notify 作为让单独的守护进程知道工作的一种方式,并注意 NOTIFY 将在事务提交时引发。

于 2013-12-08T08:58:33.073 回答
1

听起来您想从 PL/PgSQL 过程中运行异步查询。如果是这样,您可以使用dblink它。甚至可能在您正在运行的古老且不受支持的版本中。见手册;您想要的功能dblink_send_query来自dblink扩展。

请记住,您以这种方式运行的任何 SQL 都将在其自己的事务中运行。它将独立于您的主事务提交或回滚,并且它无法看到您的主事务所做的任何未提交的更改。

从客户端应用程序中执行此类操作通常会更好。

于 2013-12-08T09:10:19.340 回答