Ich habe eine materialisierte Ansicht, in Postgres 9.3
der ich mit neuen Spalten aktualisieren möchte. Andere materialisierte Ansichten hängen jedoch auch von dieser Ansicht ab, und die Fehlermeldung gibt an, dass das Löschen einer Ansicht nicht möglich ist, wenn andere Objekte davon abhängig sind.
FEHLER: materialisierte Ansicht latest_charges kann nicht gelöscht werden, da andere Objekte davon abhängen
Aus der Dokumentation geht auch hervor, dass das Schlüsselwort REPLACE für eine materialisierte Ansicht nicht gültig ist. Gibt es eine Verknüpfung außer dem Löschen aller abhängigen Objekte und dem Neuerstellen der einzelnen Objekte?
Antworten:
Ab PostgreSQL 9.4: Anders als in der Dokumentation von CREATE VIEW wird in der Dokumentation von CREATE MATERIALIZED VIEW das Schlüsselwort REPLACE NICHT erwähnt. Es scheint keine Abkürzung zu geben, außer alle abhängigen Objekte fallen zu lassen und jedes neu aufzubauen.
Wenn Sie das tun, kann ich nur zwei kleine Dinge empfehlen:
quelle
In meiner Situation ziehe ich es vor, die Tropfen mit einer Ansichtsebene zu begrenzen:
z.B.
quelle
In PgAdmin (Version 4.x) konnte ich die Definition im Eigenschaftenfeld leicht ändern (ich habe eine where-Klausel hinzugefügt). Ihr Problem könnte so gelöst werden.
quelle