sqlite:只读数据库中的临时表/视图?

Posted

技术标签:

【中文标题】sqlite:只读数据库中的临时表/视图?【英文标题】:sqlite: temporary table/view in a read-only db? 【发布时间】:2010-08-04 10:21:11 【问题描述】:

似乎 sqlite 不允许我在只读数据库中创建临时视图。我错过了什么吗?如果是 TEMPORARY,我认为 db 连接模式应该无关紧要。

我什至指定了“PRAGMA temp_store = MEMORY”——它没有帮助。

是否有合理的替代使用视图?

【问题讨论】:

【参考方案1】:

您可以创建一个临时视图来引用主数据库中的数据。

CREATE VIEW temp.userview AS select userid, firstname, lastname from main.usertbl;

然后像这样访问视图...

SELECT * from temp.userview;

【讨论】:

这不适用于pragma query_only = 1 用于数据库连接的情况。 OP 没有说明数据库是如何只读的,但这很重要。如果数据库在文件系统中是只读的pragma query_only = 0,则连接确实允许临时视图,至少在 Windows 10 上是这样。

以上是关于sqlite:只读数据库中的临时表/视图?的主要内容,如果未能解决你的问题,请参考以下文章

按顺序用 sqlite 数据库中的表行填充表视图部分

优化对只读sqlite数据库的快速访问?

SQLite进阶-17.视图

SQLIte如何设置自动增长的字段?

应用程序包中的只读 SQLite 数据库

将数据从(设计时未知)SQLite db 动态显示到表视图