Ich habe einen Ort, VIEW
für den ich versuche, ein Evolutionsskript zu erstellen, damit ich ihm eine Spalte hinzufügen kann. Dieser Teil funktioniert gut; Spalte gut hinzugefügt. Das Gegenteil funktioniert jedoch nicht. Das Entfernen der zuletzt hinzugefügten Spalte schlägt mit einer ERROR: cannot drop columns from view
Nachricht fehl . Das Problem ist, dass diese spezielle Ansicht viele Referenzen hat, sowohl von als auch bis, daher kann ich nicht nur DROP CASCADE
das verdammte Ding!
Gibt es einen Grund, warum ich eine neu hinzugefügte Spalte nicht aus einer bestimmten entfernen kann VIEW
? Was kann ich dann tun, um diese Aufgabe zu erfüllen?
(Hinweis: Die Umstände hier sind wie sie sind, aber ich kann in vielen anderen Fällen sehr gut eine ähnliche Situation sehen, auch bekannt als Löschen einer Spalte aus einer Ansicht.)
CREATE OR REPLACE VIEW
mit demselben Def, außer einer zusätzlichen Spalte (da in einer ref'ed-Tabelle eine neue Spalte hinzugefügt wurde, muss die Ansicht diese enthalten). Die "Devolution" entfernt die Spalte aus der ref'ed-Tabelle, so dass VIEW
sie auch nicht mehr zurückgegeben werden muss.
ALTER VIEW ... ADD COLUMN
. Sind Sie mitCREATE OR REPLACE VIEW
? Zeigen Sie bitte Ihren Code .