在Postgresql中的触发器上运行外部程序

时间:2015-09-01 17:20:31

标签: postgresql triggers

当我们的Postgres数据库中添加了新行时,我想运行一个bash脚本。在PostgreSQL中是否有任何system()函数允许我这样做?

为了提供更多上下文,当在数据库中创建新行时,我需要通过SSH在外部服务器上创建一个包含该行信息的新文件。

另一种解决方案就是每隔5分钟左右运行一次cron作业并检查新行,但如果有人删除一行,然后添加一行,则可能无法捕获。

1 个答案:

答案 0 :(得分:1)

看起来没有办法做到这一点。我能找到的最简单的方法就是使用Postgres' NOTIFY命令,然后用其他语言编写一个守护进程来监听这些通知。

这些通知很酷的一点是,您可以发送有效负载'与他们,可以包括你想要的任何东西,所以你可以发送" ROW CREATED:ID#455029"然后你的守护进程会知道SELECT那一行以获得更多关于它的信息。 NEATO