在临时表上创建索引的SQLite语法?

在临时表上创建索引的SQLite语法?,sqlite,indexing,Sqlite,Indexing,创建表的语法是 CREATE [temp] TABLE TableName(...) 因此,可以使用在临时数据库中创建表 CREATE temp TABLE MyTable(...) 或 参考该表的完全解决方法是 temp.Mytable 这将是与main.MyTable不同的表。 但是,创建索引的语法只是 CREATE INDEX IndexName ON TableName (FieldName ) 这不允许在表名前面加上数据库名 这没关系 CREATE INDEX MyIndex

创建表的语法是

CREATE [temp] TABLE TableName(...)
因此,可以使用在临时数据库中创建表

CREATE temp TABLE MyTable(...)

参考该表的完全解决方法是

temp.Mytable
这将是与main.MyTable不同的表。

但是,创建索引的语法只是

CREATE INDEX IndexName ON TableName (FieldName )
这不允许在表名前面加上数据库名

这没关系

CREATE INDEX MyIndex ON MyTable (MyField)
但事实并非如此

CREATE INDEX MyIndex ON Temp.MyTable (MyField)

那么如何在临时表上创建索引(特别是在主数据库中可能存在同名表的情况下?

必须将数据库名称放在索引名称上:

CREATE INDEX temp.MyIndex ON MyTable(MyField)

啊,就是这样。谢谢。这与其他引用表的地方的语法略有不同。我猜SQLite假定您指的是表的临时版本,而不是同名的主版本,因为您正在创建临时索引
CREATE INDEX temp.MyIndex ON MyTable(MyField)