Я работаю над внешними оболочками данных в 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;
perform async_call(NEW);
ВМЕСТО фактической вставки для запуска функции. а как вы реализуете async_call - это совсем другой вопрос - person Vao Tsun   schedule 07.06.2017