0

テーブル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を指していることを示しています。定義を更新する方法はありますか? このビューに依存する他のビューがあり、更新のたびにそれらを再作成したくないため、残念ながらビューを削除して再作成することはできません。

4

1 に答える 1

0

これはバグです。次のアップデート (バージョン 2.3.2) で修正される予定です。

1 つの代替方法は、データベースを閉じてから再度開くことです。

于 2013-11-01T20:59:41.040 に答える