我正在查看ResultProxy类,它似乎是execute
方法的结果。
我从一个简单的选择开始,只是迭代结果。我很好奇的是更新和删除。我怎么知道删除是否成功?
在python中执行此操作时,我会有类似于:
的内容result = session.execute("delete from A where id = 4")
它运行它,但我不知道它是否成功,除了试图查询id = 4的存在。
当我查看ResultProxy类时,我没有看到任何与isSuccessful
或任何其他关键字有关的内容。
就像我说的那样,通常情况下,我只是对选择进行迭代,但不能完全理解这一点。
答案 0 :(得分:4)
您可以查看rowcount
属性:
if result.rowcount > 0:
print("deleted something")
else:
print("nothing deleted")
请注意,此属性的准确性取决于数据库和查询。对于SQLite特别是简单的DELETE FROM foo WHERE bar = :baz
查询,它应该可以工作。