Django - 执行原始SQL更新/删除并返回行计数

时间:2009-06-09 19:36:21

标签: django mysql

在此处取消文档: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

有谁知道如何返回修改后的行数?

(注意:我已经使用了transaction.commit_unless_managed()和cursor.fetchone()(还有cursor.fetchall())的位置/顺序,它似乎没有什么区别)

谢谢! - 汤姆

1 个答案:

答案 0 :(得分:25)

您的示例中的UPDATE语句不会返回行结果,因此fetchone()将始终为空(或者可能会抛出错误)。

使用cursor.rowcount获取上次受影响的行。