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