将索引添加到附加到主数据库的内存数据库时出现问题。
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列不存在。
我能做什么?
最佳答案
只需将方括号放在前缀[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
关于database - Sqlite。如何在附加的数据库中创建索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8134327/