我有一个现有的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);数据库是开放的和有效的。这一段代码是在上一节读取此数据库中的另一个表之后执行的。在添加此语句之前,所有代码都按预期工作。
我相信我的语法对于创建索引是正确的,我不明白为什么我会收到一个错误。
发布于 2011-12-07 02:19:32
确保不存在具有该名称的索引。尝试: CREATE INDEX IF NOT EXISTS modeidx ON modeidx ON modeidx (manufID)
..。并查看是否仍会出现错误。
https://stackoverflow.com/questions/7661937
复制相似问题