2

新しいデータベースが接続に接続されるたびに、ビューを削除して再構築しようとする機能があります。問題 (まあ、もっと面倒なこと) は、最初に存在しないビューを削除しようとすることです。ビューと同じ名前の永続テーブルがあるため、sqlite エラーが発生しますuse DROP TABLE to delete table Albums。したがって、ビューを削除する前に、データベースにクエリを実行してビューが存在するかどうかを確認したいと思います。

注: 現在のクエリは既に使用DROP VIEW IF EXISTSされており、問題は解決しません。また、確認sqlite_masterしたところ、一時テーブル/ビューへの参照はないようです。

4

1 に答える 1

2

maintempデータベースは異なるため、データベース名のみを使用できます。

CREATE TABLE Albums(x);
CREATE TEMPORARY VIEW Albums AS SELECT * FROM Albums;
DROP VIEW IF EXISTS temp.Albums;
DROP VIEW IF EXISTS temp.Albums;

一時オブジェクトは で管理されsqlite_temp_masterます。

于 2013-06-12T08:27:15.533 に答える