Lockerung von PostgreSQL-Spaltenänderungen in Ansichten
PostgreSQL stellt die Datenintegrität sicher, indem es erfordert, dass Ansichten immer dann neu erstellt werden, wenn darin verwendete Spalten geändert werden. Dies kann jedoch umständlich sein, wenn Sie einfach Spalten anpassen möchten, ohne die Ansichten zu beeinträchtigen.
Permanente Lösung: Verwendung uneingeschränkter Datentypen
Um dieses Problem vollständig zu vermeiden, verwenden Sie Daten Typen wie Text oder Varchar/Zeichen variieren ohne Längenangabe. Diese Typen ermöglichen eine uneingeschränkte Datenspeicherung, sodass keine Längenänderungen erforderlich sind, die eine Wiederherstellung der Ansicht erfordern.
Erzwingen der maximalen Länge mit einer CHECK-Einschränkung
Wenn Sie die Erzwingung der maximalen Länge benötigen, Erwägen Sie die Verwendung einer CHECK-Einschränkung:
ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
Diese Einschränkung kann unabhängig geändert oder entfernt werden, ohne dass sich dies auf Ansichten auswirkt oder unnötige Datenänderungen in der Datei erzwungen werden zugrunde liegende Tabelle.
Auswirkungen der Ansichtsimplementierung
Entgegen der landläufigen Meinung sind Ansichten in PostgreSQL keine bloßen Aliase, sondern spezielle Tabellen mit Regeln, die ihren Inhalt definieren. Diese durch ON SELECT-Anweisungen erzwungenen Regeln stellen sicher, dass alle Änderungen an zugrunde liegenden Objekten möglicherweise in abhängigen Ansichten widergespiegelt werden müssen.
Einschränkungen von ALTER VIEW
ALTER VIEW kann Ändern Sie nur Hilfsattribute von Ansichten, z. B. Berechtigungen oder Kommentare. Um die zugrunde liegende Abfrage zu ändern, verwenden Sie CREATE OR REPLACE VIEW. Diese Methode eignet sich jedoch nicht zum Ändern der Datentypen der resultierenden Spalten.
Ansichten löschen und neu erstellen
In solchen Fällen besteht der bevorzugte Ansatz darin, die vorhandene Ansicht zu löschen und ERSTELLEN Sie ein neues. Dadurch bleiben die zugrunde liegenden Daten erhalten, es werden jedoch alle mit der Ansicht verknüpften benutzerdefinierten Attribute entfernt.
Das obige ist der detaillierte Inhalt vonWie kann ich PostgreSQL-Spalten ändern, ohne abhängige Ansichten neu zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!