Wenn Sie versuchen, eine in einer PostgreSQL-Ansicht verwendete Spalte zu ändern, ist es normalerweise erforderlich, die Ansicht zu löschen und die Spaltenänderung vorzunehmen , und erstellen Sie die Ansicht neu. Dieser Vorgang kann mühsam und zeitaufwändig sein. Gibt es eine Möglichkeit, diese Belastung zu verringern?
Dauerhafte Lösung:
Vermeiden Sie die Verwendung von zeichenvariablen (n) Datentypen mit einer definierten Länge . Verwenden Sie stattdessen den Datentyp text oder varchar ohne Längenangabe. Erzwingen Sie bei Bedarf eine maximale Länge mithilfe einer CHECK-Einschränkung. Durch diesen Ansatz entfällt die Notwendigkeit, die Ansicht zu ändern, wenn Spaltentypen geändert werden.
CREATE TABLE monkey (name text NOT NULL); ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
PostgreSQL-Ansichten sind nicht einfach Aliase für Unterabfragen, sondern vielmehr spezialisierte Tabellen mit ihrer eigenen Regelstruktur. Daher ist es beim Ändern zugrunde liegender Tabellen häufig erforderlich, auch abhängige Ansichten zu ändern. Die ALTER VIEW-Anweisung kann Ansichtseigenschaften ändern, nicht jedoch die zugrunde liegende Abfrage.
Um die Abfrage zu ändern, verwenden Sie CREATE OR REPLACE VIEW. Dieser Vorgang ist jedoch nicht möglich, wenn resultierende Spaltendatentypen geändert werden. In solchen Fällen muss die alte Ansicht gelöscht und eine neue erstellt werden. Diese Aktion löscht keine Daten, entfernt jedoch möglicherweise alle zusätzlichen Attribute, die mit der Ansicht verknüpft sind.
Das obige ist der detaillierte Inhalt vonPostgreSQL-Ansichten: Wie kann ich in einer Ansicht verwendete Spalten ändern, ohne sie zu löschen und neu zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!