Aktualisieren Sie eine materialisierte PostgreSQL-Ansicht automatisch, ohne Trigger zu verwenden

10

Ich habe eine materialisierte Ansicht erstellt, die view_table_Ain einer fremden Daten-Wrapper-Tabelle benannt ist table_A. Ich möchte, dass die Ansicht nach jedem neuen Einfügen automatisch aktualisiert wird table_A. Ich habe versucht, dies mit Triggern zu tun, aber es hat nicht funktioniert.

Ist es möglich, eine materialisierte Ansicht automatisch zu aktualisieren, ohne Trigger zu verwenden?

James
quelle

Antworten:

10

Wie a_horse_with_no_name in einem Kommentar sagte:

Nein, das ist nicht möglich. Sie benötigen eine Art Scheduler, der eine materialisierte Aktualisierungsansicht ausführt, z. B. pg_cron oder etwas auf Betriebssystemebene - a_horse_with_no_name

Wenn Sie alternativ eine benötigen MATERIALIZED VIEW, die beim Ausführen aktualisiert wird SELECT, entfernen Sie sie einfach MATERIALIZEDund verwenden Sie eine reguläre VIEW. Die Materialisierung fügt nur einen periodischen Cache hinzu. Es wird nur benötigt, wenn die Abfrage selbst unerschwinglich langsam oder heiß ist.

Evan Carroll
quelle