将索引添加到附加到主数据库的内存数据库时出现问题。

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/

10-09 08:28
查看更多