PostgreSQL从两个不同的应用程序连接到同一会话

PostgreSQL从两个不同的应用程序连接到同一会话,postgresql,Postgresql,我将postgresql数据库用于使用一些数据库会话参数的Qt应用程序。 我需要使用另一个应用程序(可能是BIRT report或php应用程序或其他应用程序)连接到数据库,但使用与第一个Qt应用程序相同的会话。 这可能吗?一个会话不可能有两个连接。一个会话只能处理一个连接。可以在事务之间共享快照。一些PostgreSQL应用程序(如pg_dump)使用此功能来实现-j选项。共享快照不是共享会话-对于更改的可见性有一些限制,并且很少使用此功能 有关此功能,请参阅或 -- first sessio

我将postgresql数据库用于使用一些数据库会话参数的Qt应用程序。 我需要使用另一个应用程序(可能是BIRT report或php应用程序或其他应用程序)连接到数据库,但使用与第一个Qt应用程序相同的会话。
这可能吗?

一个会话不可能有两个连接。一个会话只能处理一个连接。可以在事务之间共享快照。一些PostgreSQL应用程序(如
pg_dump
)使用此功能来实现
-j
选项。共享快照不是共享会话-对于更改的可见性有一些限制,并且很少使用此功能

有关此功能,请参阅或

-- first session
BEGIN;
SELECT pg_export_snapshot(); -- returns 00000AAF-1

-- second session
BEGIN;
SET TRANSACTION SNAPSHOT '00000AAF-1';

接下来,两个会话的初始可见内容将相同但是第一节课没有看到第二节课的任何新活动,反之亦然。

不,没有。在PostgreSQL中,会话与服务器的连接密切相关,因此会话和连接实际上是同义词。 当您通过任何通道(TCP、本地)连接到服务器时,postmaster进程将分叉,创建会话的子进程,客户端应用程序将与之“对话”并运行事务。断开连接时,子进程终止,会话结束

也许可以告诉你更多关于你的要求?
. 但这确实是一种高级产品,可能不是您想要的。

非常感谢。那将是合适的。我需要的第二次会议仅用于报告目的,不会影响数据。非常感谢。我认为这是一个很好的解决办法。