Django - выполняет обновление / удаление необработанного SQL и возвращает количество строк - PullRequest
10 голосов
/ 09 июня 2009

Сойдя с документации здесь: http://docs.djangoproject.com/en/dev/topics/db/sql/

>>>cursor = connection.cursor()
>>>cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
>>>print cursor.fetchone()
None

Кто-нибудь знает, как вернуть измененное количество строк?

(ПРИМЕЧАНИЕ. Я поиграл с размещением / порядком транзакции.commit_unless_managed () и cursor.fetchone () (также cursor.fetchall ()), и это, похоже, не имеет значения)

Спасибо! -Т

1 Ответ

26 голосов
/ 09 июня 2009

Оператор UPDATE, который вы получили в своем примере, не возвращает результатов строки, поэтому fetchone() всегда будет пустым (или может выдать ошибку).

Используйте cursor.rowcount, чтобы получить последние затронутые строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...