2012-05-02 10 views
5

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

答えて

7

いいえ、ビューは、そうでない場合、エラーが発生し、一時的なものでなければなりません:

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データベースの一部であるので、これは理にかなっています。

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

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'; 

あなたは(すべて自動的に作成さtempデータベースに格納されている)、このように一時的なテーブルとビューを一覧表示することができます

+0

これらのビューのリストを取得することはできますか? – Interfector

+0

@Interfector:はいそれは私の更新を参照してください。 –

+0

すばらしい。それを説明するための感謝と感謝のトンを作ります。 –

関連する問題