обновление Python sqlite3 не обновляется - PullRequest
5 голосов
/ 30 января 2011

Вопрос: Почему этот оператор 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))

Что возвращает запись просто отлично. но запись не обновляется с новым значением маринованного числа. это остается ". Я не могу понять, почему. мое утверждение "где", кажется, работает. мой синтаксис, кажется, правильный, потому что нет никакой ошибки. Я не знаю, почему именно это не работает.

Ответы [ 2 ]

19 голосов
/ 21 мая 2013

Если проблема не устраняется после исправления синтаксиса. Пожалуйста, убедитесь, что вы используете:

conn.commit()

После выполнения cur.execute ОБНОВЛЕНИЯ и ВСТАВКИ требуют COMMIT.

8 голосов
/ 30 января 2011

не используйте «И», используйте «,».

cur.execute('UPDATE workunits SET Completed=1, Returns=? WHERE PID=? AND Args=?',
    (pickle.dumps(Ret), PID, Args)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...