python sqlite3更新不更新

时间:2011-01-30 02:30:12

标签: python sqlite

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


的信息:

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

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

cur.execute('SELECT * FROM workunits WHERE PID=(?) AND Args=(?)',(PID,Args))

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

2 个答案:

答案 0 :(得分:19)

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

conn.commit()

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

答案 1 :(得分:8)

不要使用'AND',请使用','。

cur.execute('UPDATE workunits SET Completed=1, Returns=? WHERE PID=? AND Args=?',
    (pickle.dumps(Ret), PID, Args)
)
相关问题