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

Fal*_*per 0 python sqlite sqlalchemy

我正在研究 ResultProxy 类,它似乎是该execute方法的结果。

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

在 python 中这样做时,我会有类似的东西:

result = session.execute("delete from A where id = 4")
Run Code Online (Sandbox Code Playgroud)

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

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

就像我说的,通常,我只是遍历选择集,但无法弄清楚这一点。

uni*_*rio 5

你可以看看rowcount属性:

if result.rowcount > 0:
    print("deleted something")
else:
    print("nothing deleted")
Run Code Online (Sandbox Code Playgroud)

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