我有一个问题,添加索引到附加到主数据库的内存数据库.
1)我从文件中打开数据库(F)
2)附加:memory:(M)数据库
3)在数据库M中创建表
4)将数据从F复制到M
我还想在数据库M中创建一个索引,但不知道该怎么做.此代码创建索引,但在F数据库中:
sQuery = "CREATE INDEX IF NOT EXISTS [INDID] ON [PANEL]([ID] ASC);";
Run Code Online (Sandbox Code Playgroud)
我尝试在表名之前添加名称限定符,如下所示:
sQuery = "CREATE INDEX IF NOT EXISTS [INDID] ON [M.PANEL]([ID] ASC);";
Run Code Online (Sandbox Code Playgroud)
但SQLite返回的消息是main.M.PANEL列不存在.
我能做什么?
只需将方括号放在前缀[M].[panel]周围,或者只是跳过它们
UPD:你应该在索引名称之前设置前缀而不是表名:
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
Run Code Online (Sandbox Code Playgroud)