Heim >Datenbank >MySQL-Tutorial >Wie ändere ich Spalten in PostgreSQL-Ansichten, ohne sie zu löschen und neu zu erstellen?
Frage:
Wie kann ich die strenge Kontrolle von PostgreSQL über Spaltenänderungen in Ansichten umgehen? Ich würde es vorziehen, Spalten zu ändern, ohne die Ansichten jedes Mal löschen und neu erstellen zu müssen.
Lösung:
Es gibt zwei Ansätze, um dies zu erreichen:
Um das Problem vollständig zu beseitigen, sollten Sie die Verwendung unterschiedlicher Text- oder Varchar/Zeichen-Datentypen ohne Angabe einer Länge in Betracht ziehen. Dies ermöglicht nahtlose Änderungen, ohne dass sich dies auf abhängige Ansichten auswirkt.
Alternativ können Sie eine CHECK-Einschränkung implementieren, um eine maximale Länge zu erzwingen:
ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
Diese Einschränkung kann geändert oder entfernt werden, ohne dass sich dies auf Ansichten auswirkt oder auslöst unnötige Datenumschreibungen.
PostgreSQL-Ansichten sind nicht einfach Unterabfragen Aliase. Sie werden als Tabellen mit speziellen Regeln implementiert und bieten die Flexibilität, Hilfsattribute mithilfe von ALTER TABLE zu ändern. Das Ändern zugrunde liegender Datentypen erfordert jedoch das Löschen und erneute Erstellen der Ansicht. Dadurch bleiben die Daten erhalten, aber möglicherweise werden hinzugefügte Attribute entfernt.
Um die zugrunde liegende Abfrage in einer Ansicht zu ändern, verwenden Sie CREATE OR REPLACE VIEW. Dies ist jedoch bei Datentypänderungen nicht möglich. Daher ist es notwendig, die Ansicht zu löschen und neu zu erstellen, um solche Änderungen zu berücksichtigen.
Das obige ist der detaillierte Inhalt vonWie ändere ich Spalten in PostgreSQL-Ansichten, ohne sie zu löschen und neu zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!