2024-09-27 09:31:00 发布
网友
为什么删除不存在的记录不会在sqlalchemy中引发错误。 没有关于记录是否被删除的反馈。在
session.query(Element).filter(Element.id==ElementId).delete()
谢谢你的澄清。在
实际上,sqlalchemy delete操作返回受影响的行数。所以您可以检查,如果受影响的行是0,则可以引发错误。在
effected_rows = session.query(Element).filter(Element.id==ElementId).delete() if effected_rows == 0: # raise exception else: # delete element
这对我有用。在
我不认为这是个错误。例如,发出查询以删除sql中“不存在”的记录是完全合法的
如果我有一个表'posts'和列'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
delete
正如zzzeek用一个标准指出^{}
Returns the number of rows deleted, excluding any cascades.
这是查看是否删除了任何行的另一个选项
实际上,sqlalchemy delete操作返回受影响的行数。所以您可以检查,如果受影响的行是0,则可以引发错误。在
这对我有用。在
我不认为这是个错误。例如,发出查询以删除sql中“不存在”的记录是完全合法的
如果我有一个表'posts'和列'id'。没有任何记录
DELETE FROM posts WHERE ID > 0;
它是完全有效的sql,没有错误,即使没有行
我对sqlalchmey不太熟悉,但您能先检查一下这个值是否存在吗?在
上面将发出一个额外的查询。。。在
另外,如果您想要一个引起错误的
delete
方法,您可以创建自己的会话类 Change SQLAlchemy's Session.delete() behaviour 并重写delete
正如zzzeek用一个标准指出^{}
这是查看是否删除了任何行的另一个选项
相关问题 更多 >
编程相关推荐