python sqlite3更新不更新

Nar*_*ser 5 python sqlite

问题:为什么这个sqlite3语句没有更新记录?


信息:

cur.execute('UPDATE workunits SET Completed=1 AND Returns=(?) WHERE PID=(?) AND Args=(?)',(pickle.dumps(Ret),PID,Args))
Run Code Online (Sandbox Code Playgroud)

我正在使用python和sqlite3.这个语句不会抛出错误,它似乎就是被忽略了.由于测试原因我在下面包括:

cur.execute('SELECT * FROM workunits WHERE PID=(?) AND Args=(?)',(PID,Args))
Run Code Online (Sandbox Code Playgroud)

哪个记录就好了.但记录没有与腌制ret的新值一起更新.它仍然是你.我无法弄清楚为什么.我的where声明似乎有效.我的语法似乎是正确的,因为没有抛出错误.我对于为什么它不起作用我一无所知.

Ari*_*aco 21

如果修复语法后问题仍然存在.请确保您使用的是:

conn.commit()
Run Code Online (Sandbox Code Playgroud)

在cur.execute之后,UPDATES和INSERTS需要COMMIT.


Har*_*men 8

不要使用'AND',使用','.

cur.execute('UPDATE workunits SET Completed=1, Returns=? WHERE PID=? AND Args=?',
    (pickle.dumps(Ret), PID, Args)
)
Run Code Online (Sandbox Code Playgroud)