sqllite CREATE INDEX执行返回错误

sqlite CREATE INDEX exec returning an error

本文关键字:返回 错误 执行 INDEX CREATE sqllite      更新时间:2023-10-16

我有一个现有的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);

数据库是打开且有效的。这段代码是在前一节读取数据库中的另一个表之后执行的。在添加此语句之前,所有代码都按预期工作。

我相信我的语法是正确的创建索引,我不明白为什么我收到一个错误。

确保该名称的索引不存在。CREATE INDEX IF NOT EXISTS

…然后看看是否还会出现错误