0

我正在使用 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;
4

1 回答 1

0

postgres dblink扩展允许通过dblink-send-query命令异步调用远程服务器。

不确定在建立多个连接方面它将如何在触发器内工作。此处应注意资源泄漏

于 2019-09-13T12:36:06.533 回答