从PostgreSQL触发器调用外部程序
我希望在触发PostgreSQL触发器时执行外部程序(如.net c#console)。我该如何实现它?出于安全原因,Postgres无法正常运行外部程序 典型的解决方案是使用一个守护进程,并为其设置守护进程。每个主要的脚本语言都有解决方案从PostgreSQL触发器调用外部程序,postgresql,notifications,listener,Postgresql,Notifications,Listener,我希望在触发PostgreSQL触发器时执行外部程序(如.net c#console)。我该如何实现它?出于安全原因,Postgres无法正常运行外部程序 典型的解决方案是使用一个守护进程,并为其设置守护进程。每个主要的脚本语言都有解决方案 来自@Craig的Java示例: 自Postgres 9.3以来,有一种调用外部程序的解决方案。出于安全原因,它仅限于用于导出数据的超级用户和IMHO,而不是执行“触发时通知”: 如果要将数据实际导出到调用的程序,可以提供任意SELECT或表名,而不是S
- 来自@Craig的Java示例:
为什么我的问题被否决了?有什么原因吗?当然,我一直在寻找解决办法。我仍然找不到更好更快的解决方案。任何替代方案都可以。PHP示例是否阻塞?我想一直听的是什么?不仅仅是针对一个事件,而且对于每一个事件,显然有一个事件没有被听过,所以所有人需要做的是在处理事件之后重新运行C++查询。你能解释一下为什么你的论点中有两条路径,分别是
/bin/touch
和/tmp/created\u postgres
?您认为这可以执行外部python或shell脚本吗?好的,我知道程序
实际上可以运行任何shell命令。。。您是否知道执行COPY
方法的postgres函数与PROGRAM
执行的shell命令之间是否有握手?这意味着postgres函数将等待shell命令完成,然后再转到下一个任务。
COPY (SELECT 1) TO PROGRAM '/bin/touch /tmp/created_by_postgres'