2012-05-02 83 views

回答

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其中仅存在当前过程的一部分。

编辑:

可以列出临时表和视图(所有存储在自动创建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'; 
+0

然后可以获得这些视图的列表吗? – Interfector

+0

@Interfector:是的,看到我的更新。 – 2012-05-02 08:43:33

+0

太棒了。让人感觉很好,并感谢你解释它。 –