【发布时间】:2017-06-07 06:07:47
【问题描述】:
我正在使用 postgres 中的外部数据包装器,使用 multicorn 并使用触发器在外部表中插入数据,但是我不希望 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;
【问题讨论】:
-
@VaoTsun 我在 postgres 中使用触发器,不希望触发器有任何响应。而是使用对触发器的异步调用。只需调用触发器并忘记它。
-
我没有从触发器得到任何响应。没事儿。但它仍然等待完成执行。我什至不想要它。 @VaoTsun
-
是的。没错@VaoTsun
-
你说“不要等它结束”这怎么可能。你能详细说明一下吗。 @VaoTsun
-
不知道。我使用 dblink 进行异步操作。不知道是否还有其他的猴子破解方法
标签: postgresql foreign-data-wrapper multicorn