我正在使用postgres中的外部数据包装器,使用多核和使用触发器在外部表中插入数据,但是我不希望postgres在触发后等待响应,只需触发器插入然后忘记。 怎么可能呢。
实际上我正在将它用于外国桌
CREATE FOREIGN TABLE media_es (
id BIGINT,
title TEXT,
description TEXT,
tags TEXT,
query TEXT,
score NUMERIC
)
SERVER multicorn_es
OPTIONS (
host 'elasticsearch',
port '9200',
index 'test',
type 'media',
rowid_column 'id',
query_column 'query',
score_column 'score'
);
CREATE TRIGGER es_insert_media
AFTER INSERT
ON media
FOR EACH ROW
EXECUTE PROCEDURE index_media();
CREATE OR REPLACE FUNCTION index_media()
RETURNS trigger
AS $def$
BEGIN
INSERT INTO media_es
(
id,
title,
description,
tags
)
VALUES
(
NEW.id,
NEW.title,
NEW.description,
NEW.tags
)
;
RETURN NEW;
END;
$def$ LANGUAGE plpgsql;
答案 0 :(得分:0)
postgres dblink扩展名允许通过dblink-send-query命令异步调用远程服务器。
不确定在建立多个连接方面它将如何在触发器内工作。在此请注意资源泄漏