我有一个现有的sqlite数据库。我试图通过使用索引来提高查询性能。另外,我正在使用C++包装到sqlite。返回值是下面的sqlite3_exec调用中的SQLITE_ERROR。
包装代码如下执行exec:
Int CppSQLite3DB::execDML(const char* szSQL)
{
checkDB();
char* szError=0;
int nRet = sqlite3_exec(mpDB, szSQL, 0, 0, &szError);
if (nRet == SQLITE_OK)
{
return sqlite3_changes(mpDB);
}
else
{
throw CppSQLite3Exception(nRet, szError);
}
}
我创建索引的代码是:
sprintf_s( statement, sizeof(statement), "CREATE INDEX modeidx ON Models (manufID)");
flDB->execDML(statement);
该数据库已打开且有效。本部分代码是在上一部分从该数据库的另一个表中读出后执行的。在添加此语句之前,所有代码均按预期工作。
我相信我的语法对于创建索引是正确的,我不明白为什么会收到错误。
最佳答案
确保不存在具有该名称的索引。尝试:如果不存在,请创建索引modeidx ON模型(manufID)
...看看是否仍然出现错误。