PostgreSQL:如何在不延迟插入响应的情况下执行插入触发器?

Posted

技术标签:

【中文标题】PostgreSQL:如何在不延迟插入响应的情况下执行插入触发器?【英文标题】:PostgreSQL: How to execute an insert trigger without delaying insert response? 【发布时间】:2010-02-02 00:09:30 【问题描述】:

有谁知道如何设置插入触发器,以便当从我的应用程序执行插入时,数据被插入并且 postgres 返回,甚至在触发器完成执行之前?

【问题讨论】:

【参考方案1】:

对此没有内置支持;你将不得不破解一些东西。选项包括:

用 C、Perl 或 Python 编写触发器,并让它启动一个单独的进程来执行您想要的操作。这可能会变得很棘手,并且可能对您的数据库系统有点危险,并且仅当您想要做的事情在数据库之外时才有效。

编写一个轻量级的触发器函数,它只将一个条目记录到日志或任务表中,并有一个单独的作业或守护程序按自己的计划查看该表并从那里执行任务。这或多或少是 Slony 的工作原理。

【讨论】:

【参考方案2】:

问题是:你为什么需要它?触发器应该很快。如果您需要做一些复杂的事情,请编写将通知发送到执行复杂部分的某个守护进程的触发器 - 例如使用 PostgreSQL 的 LISTEN/NOTIFY 功能。

【讨论】:

以上是关于PostgreSQL:如何在不延迟插入响应的情况下执行插入触发器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 sleep() 的情况下使用 ontimer 函数延迟进程?

如何在不指定数据库名称的情况下连接到 PostgreSQL?

如何在不冻结线程的情况下延迟答案? [复制]

如何在不停止应用程序的情况下延迟功能

Postgresql:如何在不使用中间 hstore 的情况下将键值表转换为 json

PostgreSQL,如何在不创建重复项的情况下将数组更新为现有数组?