Wie aktualisiert man alle materialisierten Ansichten in Postgresql 9.3 auf einmal?

8

Ich lade eine Reihe von Daten in eine PostgresQL 9.3-Datenbank und möchte dann alle materialisierten Ansichten aktualisieren, die von den aktualisierten Tabellen abhängen. Gibt es eine Möglichkeit, dies automatisch zu tun, anstatt jede einzelne Ansicht zu durchlaufen und sie einzeln zu aktualisieren? Ich weiß, dass Oracle das ziemlich leicht machen kann, aber ich habe nichts gefunden, nachdem ich die PostgreSQL-Dokumentation durchkämmt habe.

    
srk 14.11.2013, 15:26
quelle

4 Antworten

19

Sieht aus, als hätte die aktuelle Version von PostgreSQL (9.3.1) keine solche Funktionalität, sondern musste stattdessen meine eigene Funktion schreiben:

%Vor%

(auf GitHub: Ссылка )

    
srk 14.11.2013, 23:01
quelle
2

selbe Methode, die Option hinzugefügt, um sie auf allen Schemas optional gleichzeitig auszuführen.

%Vor%

Ich habe es auch auf GitHub gesetzt: Ссылка

    
frankhommers 04.12.2015 10:02
quelle
1

gleiche Methode, zusätzliche Standby-Prüfung

%Vor%     
user47323 31.03.2015 14:53
quelle
1

Das folgende Snippet verwendet REFRESH MATERIALIZED VIEW CONCURRENTLY , wenn ein UNIQUE Index für diese Ansicht existiert.

%Vor%

Dieses Snippet akzeptiert einen Schemanamen, um die Aufrufe zu beschränken, die aktualisiert werden.

%Vor%     
Jeffrey 14.03.2016 14:45
quelle