Navicat中的SQLite临时表

时间:2012-12-15 17:08:12

标签: sqlite

我使用Navicat和这个命令在sqlite中创建临时表:

create temp table search as select * from documents

然后当我尝试查询时:

select * from search

我得到了:

no such table: temp.sqlite_master

或:

no such table

表格也没有出现在表格列表中,但当我尝试再次创建表格时,我得到:

table search already exists

有什么问题?是来自navicat?

3 个答案:

答案 0 :(得分:2)

你创建语句对我来说是正确的。创建临时表时,在关闭用于创建表的连接字符串时会删除它。您在创建表后关闭连接,然后在发送查询时再次打开它吗?

如果没有,您是否也可以包含查询语句?

答案 1 :(得分:1)

这就像Navicat附带的SQLite DLL中的一个错误。测试它在其他地方工作正常。

答案 2 :(得分:0)

SQLite的文档告诉我们有关CREATE TABLE的信息:

  

如果指定了a,则必须是“main”,“temp”,   或附加数据库的名称。在这种情况下,新表是   在指定的数据库中创建。如果是“TEMP”或“TEMPORARY”关键字   在“CREATE”和“TABLE”之间发生,然后创建新表   在临时数据库中。指定两者都是错误的   和TEMP或TEMPORARY关键字,除非是   “温度”。如果未指定数据库名称,则不指定TEMP关键字   然后,表将在主数据库中创建。

可能您应该通过临时前缀访问表格,如下所示:temp.search