是否可以在附加了其他数据库的 Sqlite 数据库中创建 VIEW(不是临时视图)?该视图应该能够通过连接表访问所有数据库中的数据。
问问题
5360 次
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 回答