VIEW進化スクリプトを作成しようとしている場所があるので、それに列を追加できます。その部分は問題なく動作します。列は問題なく追加されました。ただし、その逆は機能しません。最後に追加された列を削除すると、ERROR: cannot drop columns from viewメッセージが表示されて失敗します。問題は、この特定のビューにはfromとtoの両方に多くの参照があるため、私はまったくDROP CASCADE気の毒なことはできないということです。
新しく追加された列を指定されたものから削除できない理由はありVIEWますか?次に、このタスクを実行するにはどうすればよいですか?
(注:ここに示すのは状況ですが、他の多くの場合でも、ビューから列を削除するなど、同じような状況がよくわかります。)
CREATE OR REPLACE VIEW追加の列を除いて同じ定義を使用します(参照されたテーブルには新しい列が追加されているため、ビューにそれを含める必要があるため)。「デボルブ」は、参照されたテーブルから列を削除するため、VIEWもそれを返す必要はありません。
ALTER VIEW ... ADD COLUMN。使っていCREATE OR REPLACE VIEWますか?コードを表示してください。