首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlite CREATE INDEX exec返回错误

sqlite CREATE INDEX exec返回错误
EN

Stack Overflow用户
提问于 2011-10-05 21:23:04
回答 1查看 855关注 0票数 2

我有一个现有的sqlite数据库。我正在尝试通过使用索引来提高查询性能。另外,我还使用了一个C++包装器来实现sqlite。返回值是来自下面的sqlite3_exec调用的SQLITE_ERROR。

执行exec的包装器代码如下:

代码语言:javascript
复制
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);
}
}

我创建索引的代码是:

代码语言:javascript
复制
sprintf_s( statement, sizeof(statement), "CREATE INDEX modeidx ON Models (manufID)");  
flDB->execDML(statement);

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

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

EN

回答 1

Stack Overflow用户

发布于 2011-12-07 02:19:32

确保不存在具有该名称的索引。尝试: CREATE INDEX IF NOT EXISTS modeidx ON modeidx ON modeidx (manufID)

..。并查看是否仍会出现错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7661937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档