Postgresql 从外部处理触发触发器的行

Postgresql 从外部处理触发触发器的行,postgresql,triggers,Postgresql,Triggers,我正在Ubuntu 14服务器上开发PostgreSQL 9.3数据库 我尝试编写一个触发器函数(在每行之后),启动一个需要访问触发该触发器的行的外部进程 我的问题: 即使我可以在表上运行查询,包括触发器内的新行,外部进程也看不到它(而触发器函数仍在运行) 有没有办法解决这个问题 我曾考虑过启动某种异步函数调用,让触发器有一段时间先终止,但这确实很糟糕 我还阅读了有关通知程序和侦听器,但这需要对现有代码进行一些重构,还需要一些额外的侦听器,我试图用触发器阻止这些重构。(我还担心这条路上可能会出

我正在Ubuntu 14服务器上开发PostgreSQL 9.3数据库

我尝试编写一个触发器函数(在每行之后),启动一个需要访问触发该触发器的行的外部进程

我的问题
即使我可以在表上运行查询,包括触发器内的新行,外部进程也看不到它(而触发器函数仍在运行)

有没有办法解决这个问题


我曾考虑过启动某种异步函数调用,让触发器有一段时间先终止,但这确实很糟糕

我还阅读了有关
通知程序
侦听器
,但这需要对现有代码进行一些重构,还需要一些额外的侦听器,我试图用触发器阻止这些重构。(我还担心这条路上可能会出现新的问题。)

还有什么想法吗


罗宾

不,那是不可能的。触发触发器时,事务尚未提交,因此任何外部应用程序都不会看到新数据。我能看到的唯一解决方案是将必要的信息从行传递到外部进程(例如,通过JSON)的方法可能会有所帮助,但我不确定这是否是一个好主意…@Abelisto:Postgres不支持read uncommittedNo,这是不可能的。触发触发器时,事务尚未提交,因此任何外部应用程序都不会看到新数据。我能看到的唯一解决方案是将必要的信息从行传递到外部进程(例如,通过JSON)的方法可能会有帮助,但我不确定这是否是一个好主意…@Abelisto:Postgres不支持读取未提交