Триггер для обновления материализованного представления после вставки в другое материализованное представление Postgresql - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь вызвать refre sh для материализованного представления после вставки, обновления или удаления в другом материализованном представлении. Я пытаюсь использовать триггерную функцию для достижения этой цели. Сценарий выглядит следующим образом:

CREATE FUNCTION aza_ods_version1.populate_fact_churn_m() 
RETURNS TRIGGER AS $$
BEGIN
    REFRESH MATERIALIZED VIEW aza_ods_version1.fact_churn_monthly;
    RETURN NULL;
END;
$$ LANGUAGE plpgsql;


CREATE TRIGGER refresh_fact_churn_monthly
  AFTER INSERT OR UPDATE OR DELETE OR TRUNCATE
  ON aza_ods_version1.fact_transactions
  FOR EACH ROW
    WHEN (OLD.* IS DISTINCT FROM NEW.*)
  EXECUTE PROCEDURE aza_ods_version1.populate_fact_churn_m();

При попытке создать триггер я получаю эту ошибку; ОШИБКА: "fact_transactions" не является таблицей или представлением SQL состояние: 42809

Я думаю, что это так, потому что fact_transactions является материализованным представлением, а не представлением или таблицей. Есть ли способ, которым я могу достичь того, что я пытаюсь ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...