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

use*_*752 3 sqlite indexing

创建表的语法是

CREATE [temp] TABLE TableName(...)
Run Code Online (Sandbox Code Playgroud)

因此可以使用以下命令在临时数据库中创建表

CREATE temp TABLE MyTable(...)
Run Code Online (Sandbox Code Playgroud)

要么

 CREATE TABLE temp.MyTable(...)
Run Code Online (Sandbox Code Playgroud)

而完全解析该表的方式将是

temp.Mytable
Run Code Online (Sandbox Code Playgroud)

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

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

CREATE INDEX IndexName ON TableName (FieldName )
Run Code Online (Sandbox Code Playgroud)

不允许表名带有数据库名

所以没关系

CREATE INDEX MyIndex ON MyTable (MyField)
Run Code Online (Sandbox Code Playgroud)

但这不是

CREATE INDEX MyIndex ON Temp.MyTable (MyField)
Run Code Online (Sandbox Code Playgroud)

然后如何在临时表上创建索引(特别是如果主数据库中可能有同名表)?

CL.*_*CL. 5

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

CREATE INDEX temp.MyIndex ON MyTable(MyField)
Run Code Online (Sandbox Code Playgroud)