Automatyczne odświeżanie zmaterializowanego widoku PostgreSQL bez użycia wyzwalaczy

11

Utworzyłem zmaterializowany widok o nazwie view_table_Aw tabeli opakowań danych obcych table_A. Chcę, aby widok był automatycznie aktualizowany po każdej nowej wstawce table_A. Próbowałem to zrobić za pomocą wyzwalaczy, ale to nie zadziałało.

Czy możliwe jest automatyczne odświeżanie zmaterializowanego widoku bez użycia wyzwalaczy?

James
źródło

Odpowiedzi:

11

Jak powiedział w komentarzu a_horse_with_no_name :

Nie, to niemożliwe. Potrzebujesz jakiegoś harmonogramu, który uruchamia odświeżony widok zmaterializowany, np. Pg_cron lub coś na poziomie systemu operacyjnego - a_horse_w_nazwie

Alternatywnie, jeśli potrzebujesz MATERIALIZED VIEWodświeżenia po uruchomieniu SELECT, po prostu usuń MATERIALIZEDi użyj zwykłego VIEW. Materializacja dodaje tylko okresową pamięć podręczną. Jest potrzebny tylko wtedy, gdy samo zapytanie jest zbyt wolne lub gorące.

Evan Carroll
źródło