2
为什么删除不存在的记录不会在sqlalchemy中产生错误。 记录是否被删除没有反馈。删除不存在的记录会在sqlalchemy中产生错误
session.query(Element).filter(Element.id==ElementId).delete()
谢谢您的澄清。
Z
为什么删除不存在的记录不会在sqlalchemy中产生错误。 记录是否被删除没有反馈。删除不存在的记录会在sqlalchemy中产生错误
session.query(Element).filter(Element.id==ElementId).delete()
谢谢您的澄清。
Z
我不认为这是一个错误。例如,发出一个查询来删除sql中“不存在”的记录是完全合法的
如果我有一个'帖子'与'id'列。没有记录
DELETE FROM posts WHERE ID > 0;
这是完全有效的SQL,没有错误,即使没有行
我不是太熟悉sqlalchmey,但你可以检查是否值第一存在?
element = session.query(Element).filter(Element.id==ElementId).first()
if element:
# delete element
else:
# raise exception
上面会发出尽管其他查询...
另外,如果你想有一个delete
方法提高你可以创建自己的会话类错误 Change SQLAlchemy's Session.delete() behaviour 并覆盖delete
返回删除的行数,不包括任何级联。
这是因为如果任何行被删除
删除)上看到的标准(将返回匹配的行数,这样你就可以在该断言另一种选择。否则这个答案是正确的,如果你想检查删除身份你必须使用session.delete()。 – zzzeek 2013-02-20 17:18:50
谢谢大家,我会尝试建议的答案。 – zorro 2013-02-21 11:50:38