テーブルxにビューvがあります。バックグラウンド タスクは、ビューvがポイントする新しいテーブルyを作成します。そのために、次のコマンドを使用します
ALTER VIEW PUBLIC.v AS
SELECT id, name, price FROM y
その後、ビューvがテーブルyを指していることを確認しました。これまでのところ問題ありません。しかし、古いテーブルxを削除しようとすると、次のエラー メッセージが表示されます。
Error code -5502, SQL state 42502: dependent objects exist: PUBLIC.V in statement [drop table x]
したがってINFORMATION_SCHEMA.VIEWS
、次のコマンドでシステムビューテーブルを確認する場合
select * from INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA='PUBLIC' AND TABLE_NAME='V'
次のビュー定義が得られます。
SELECT T.id,T.name,T.price FROM PUBLIC.x
これは、ビューが古いテーブルxを指していることを示しています。定義を更新する方法はありますか? このビューに依存する他のビューがあり、更新のたびにそれらを再作成したくないため、残念ながらビューを削除して再作成することはできません。