创建临时表索引的SQLite语法是什么?

4
创建表的语法如下:
CREATE [temp] TABLE TableName(...)

所以可以使用以下代码在临时数据库中创建表:

CREATE temp TABLE MyTable(...)

或者

 CREATE TABLE temp.MyTable(...)

而完全解决引用该表的方法是:
temp.Mytable

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

然而,创建索引的语法只需:

CREATE INDEX IndexName ON TableName (FieldName )

这不允许在表名前加上数据库名称

因此这样是可以的

CREATE INDEX MyIndex ON MyTable (MyField)

但这并不是。
CREATE INDEX MyIndex ON Temp.MyTable (MyField)

那么我如何在临时表上创建索引(特别是如果主数据库中可能会有相同名称的表)?

1个回答

6

索引名称必须包含数据库名称:

CREATE INDEX temp.MyIndex ON MyTable(MyField)

啊,原来如此。谢谢你。这与其他引用表的地方略有不同的语法。我猜SQLite认为你是在创建一个临时索引,所以默认使用同名的临时表而不是主表。 - user3209752

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接