5
是否有可能在连接了其他数据库的Sqlite数据库中创建VIEW(而不是临时视图)? 该视图应该能够通过连接表访问所有数据库中的数据。跨多个数据库的Sqlite视图
是否有可能在连接了其他数据库的Sqlite数据库中创建VIEW(而不是临时视图)? 该视图应该能够通过连接表访问所有数据库中的数据。跨多个数据库的Sqlite视图
否,则视图必须是暂时的,否则将发生错误:
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';
然后可以获得这些视图的列表吗? – Interfector
@Interfector:是的,看到我的更新。 – 2012-05-02 08:43:33
太棒了。让人感觉很好,并感谢你解释它。 –