簡體   English   中英

在save()期間,Peewee檢查“唯一約束失敗”

[英]Peewee check for 'UNIQUE contraint failed' during save()

為避免在數據庫中重復條目, 建議使用數據庫本身的索引功能,並使其自動處理問題。

我通過peewee遷移設置了正確的索引

migrator.add_index('mymodel', ('column1', 'column2', 'column3'), True),

因此,現在,如果我嘗試使用已存在的column1column2column3值保存mymodel條目,則可以正確地拋出異常。

異常如下所示:

IntegrityError: UNIQUE constraint failed: mymodel.column1, mymodel.column2, mymodel.column3

我的問題是:是否也會因為其他可能的錯誤而拋出IntegrityError 如果是,如何區分重復插入和其他錯誤?

我想捕捉和處理重復插入,而不是其他錯誤。 這可能嗎?

DB引發IntegrityError來指示違反約束(違反db完整性)。 從您嘗試執行的查詢的上下文中,您可以嘗試推斷違反了什么約束(例如,添加用戶名已存在的用戶,等等)。 但是,您必須深入研究錯誤消息本身,以區分多個約束。

如果您要進行UPSERT,則可以顯式指定約束,但這只是一種利基用法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM