SQLite的。如何在附加数据库中创建索引?

时间:2011-11-15 09:47:37

标签: database sqlite

我将附加索引添加到附加到主数据库的内存数据库。

1)我从文件

打开数据库(F)

2)附上:memory:(M)数据库

3)在数据库M中创建表

4)将数据从F复制到M

我还想在数据库M中创建一个索引,但不知道该怎么做。 此代码创建索引,但在F数据库中:

sQuery = "CREATE INDEX IF NOT EXISTS [INDID] ON [PANEL]([ID]  ASC);";

我尝试在表名之前添加名称限定符,如下所示:

sQuery = "CREATE INDEX IF NOT EXISTS [INDID] ON [M.PANEL]([ID]  ASC);";

但SQLite返回的消息是main.M.PANEL列不存在。

我该怎么办?

2 个答案:

答案 0 :(得分:8)

只需将方括号放在前缀[M]。[panel]周围,或者只是跳过它们

UPD:你应该设置索引名称的前缀before而不是表名:

sqlite> attach database ":memory:" as m;
sqlite> .databases
seq  name             file
---  ---------------  ----------------------------------------------
0    main
2    m
sqlite> create table m.users (id int, name TEXT);
sqlite> create unique index m.qwe on users (name);
sqlite> insert into m.users VALUES(2,'asd');
sqlite> insert into m.users VALUES(3,'asd');
Error: column name is not unique

答案 1 :(得分:0)

尝试一下:

CREATE UNIQUE INDEX `idxuserID` ON `userFlag` (
    `userID`
);