SQLite3 c++列值不会增加1

SQLite3 C++ Column value wont increment by 1

本文关键字:增加 c++ SQLite3      更新时间:2023-10-16

我在我的一个表中有一列,我试图通过c++中的sqlite3中的update查询更新。使用v3.8.10.2合并sqlite3.

我可以设置这个值为任何我想要的值,但是我不能增加它。该值从0开始。一旦我增加它,它增加到1。之后,如果我尝试再次增加它,它不增加,它保持在1 同样的,如果我把1替换成8。它保持在8,不会再上升(即使它应该上升到16)。

char* query = "UPDATE THETABLE SET ATTEMPTS = ATTEMPTS + 1 WHERE TESTFIELD = 'Hello';"
int error = sqlite3_exec(db, query.c_str(), NULL, 0, &errMsg);
if(error != SQLITE_OK){
    //This doesn't happen, error is = to SQLITE_OK
    cout << "SQL Error: " << error << " message: " << errMsg << endl;
    sqlite3_close(db);
    return;
}
cout << "Updated value!" << endl;

我在Windows中通过命令提示控制台使用了完全相同的查询,它有效,它递增。在c++中,它保持为1。为什么?

编辑:

我也试过这个查询:

"UPDATE table SET ATTEMPTS = +1 WHERE TESTFIELD = 'Hello';"

同样的,它停留在1。不能再高了

编辑2:下面是该列的模式:

"ATTEMPTS INTEGER DEFAULT 0,"

这是sqlite3 c++实现中的错误吗?

问题是当我最初添加一行时,我正在做一个:

插入或替换

我没有设置字段的值,我以为它不会被触摸,但它被设置为默认值0。

我把它改成:

插入或忽略