10

他のデータベースが接続されているSqliteデータベースにVIEW(一時的なビューではない)を作成することは可能ですか?ビューは、結合されたテーブルを介してすべてのデータベースのデータにアクセスできる必要があります。

4

1 に答える 1

14

いいえ、ビューは一時的なものである必要があります。そうでない場合、エラーが発生します。

sqlite> create view view1 as select * from db2.foo union select * from main.foo;
Error: view view1 cannot reference objects in database db2
sqlite> create temp view view1 as select * from db2.foo union select * from main.foo;
sqlite> select * from view1;
...

temp一時ビューは、現在のプロセスにのみ存在する自動的に作成されたデータベースの一部であるため、これは理にかなっています。

編集:

次の方法で、一時テーブルとビュー(すべて自動的に作成されたtempデータベースに格納されている)を一覧表示できます。

sqlite> .headers on
sqlite> select * from sqlite_temp_master;
type|name|tbl_name|rootpage|sql
view|view1|view1|0|CREATE VIEW view1 as select * from db2.foo union select * from main.foo

ビューのみを一覧表示するには:

select * from sqlite_temp_master where type='view';
于 2012-05-02T08:31:51.247 に答える