我将附加索引添加到附加到主数据库的内存数据库。
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列不存在。
我该怎么办?
答案 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`
);