PostgreSQL触发器是异步的吗?

mrm*_*one 10 postgresql

抱歉,我是SQL触发器的新手,需要一些帮助.

我在UPDATE我的一个PostgreSQL表上创建了一个触发器.触发器调用DELETE另一个表.我的问题是:请求的触发器部分是否与请求异步或同步UPDATE

有关更多信息,请参阅我的触发器和功能:

CREATE OR REPLACE FUNCTION expire_table() RETURNS trigger AS $expire_table$
  BEGIN
     DELETE FROM object_store WHERE p_time < NOW() - INTERVAL '6 months';
     RETURN NEW;
  END;
$expire_table$ LANGUAGE 'plpgsql';

CREATE TRIGGER expire_table_trigger
  AFTER UPDATE ON objects
EXECUTE PROCEDURE expire_table();
Run Code Online (Sandbox Code Playgroud)

我希望触发器部分是异步的,或者有一种方法可以实现.

Lau*_*lbe 13

触发器始终在与语句相同的事务中执行,因此它必须是同步的.没办法解决这个问题.

您可以考虑使用工作进程异步处理的队列或使用的体系结构,而不是触发器LISTEN/NOTIFY.