3

我正在开发的程序可以从另一个使用 sqlite 文件的程序(不是我们的)导入数据。我需要 sqlite 文件中尚不存在的索引,但我不想修改某人的数据只是为了让他们导入它。该索引被许多查询使用。因此,我想创建一个临时索引,该索引仅与连接一样长

我已经看到引用了以下明显的语法(在 2003 年的邮件列表消息中......):

$ sqlite3 thirdparty.sqlite
SQLite version 3.7.4
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TEMP INDEX foo ON SomeTable(SomeCol);
Error: near "INDEX": syntax error

有可能做这样的事情吗?现在,我们只是在导入之前制作文件的副本,但是这些文件可能非常大,所以这是不切实际的。

4

1 回答 1

3

TEMPORARY 索引被暂时添加但很快被删除,因为无法保证一致性。虽然如果索引只持续一个事务(这会导致排他锁并因此阻止修改),这应该不是问题,但这不是它们的实现方式。因此,在撰写本文时,sqlite 无法使用临时索引。有关详细信息,请参阅http://permalink.gmane.org/gmane.comp.db.sqlite.general/4827

于 2013-04-04T10:45:32.717 回答