我怎么知道我的执行方法是否成功删除了?

时间:2017-07-12 01:42:18

标签: python sqlite sqlalchemy

我正在查看ResultProxy类,它似乎是execute方法的结果。

我从一个简单的选择开始,只是迭代结果。我很好奇的是更新和删除。我怎么知道删除是否成功?

在python中执行此操作时,我会有类似于:

的内容
result = session.execute("delete from A where id = 4")

它运行它,但我不知道它是否成功,除了试图查询id = 4的存在。

当我查看ResultProxy类时,我没有看到任何与isSuccessful或任何其他关键字有关的内容。

就像我说的那样,通常情况下,我只是对选择进行迭代,但不能完全理解这一点。

1 个答案:

答案 0 :(得分:4)

您可以查看rowcount属性:

if result.rowcount > 0:
    print("deleted something")
else:
    print("nothing deleted")

请注意,此属性的准确性取决于数据库和查询。对于SQLite特别是简单的DELETE FROM foo WHERE bar = :baz查询,它应该可以工作。