是否可以生成一个新进程来从 postgress 函数中运行函数?还是根据文档,我是否仅限于发起请求的每个数据库连接一个线程?
单独的进程正在创建和填充动态命名的表,不返回任何数据,并且独立于生成函数。在 Postgresql 8.3 上。
是否可以生成一个新进程来从 postgress 函数中运行函数?还是根据文档,我是否仅限于发起请求的每个数据库连接一个线程?
单独的进程正在创建和填充动态命名的表,不返回任何数据,并且独立于生成函数。在 Postgresql 8.3 上。
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....
不要这样做。如果您生成一个单独的进程,它将弄乱您拥有的任何事务假设。在同一个过程中完成所有操作。如果必须,请查看 Listen/Notify 作为让单独的守护进程知道工作的一种方式,并注意 NOTIFY 将在事务提交时引发。
听起来您想从 PL/PgSQL 过程中运行异步查询。如果是这样,您可以使用dblink
它。甚至可能在您正在运行的古老且不受支持的版本中。见手册;您想要的功能dblink_send_query
来自dblink
扩展。
请记住,您以这种方式运行的任何 SQL 都将在其自己的事务中运行。它将独立于您的主事务提交或回滚,并且它无法看到您的主事务所做的任何未提交的更改。
从客户端应用程序中执行此类操作通常会更好。