View 跨多个数据库的Sqlite视图

View 跨多个数据库的Sqlite视图,view,sqlite,View,Sqlite,是否可以在连接了其他数据库的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 v

是否可以在连接了其他数据库的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';

那么,有可能得到这些视图的列表吗?太棒了。非常有意义,感谢您的解释。Navicat的相关功能请求: