![](/img/trans.png)
[英]Peewee mysql Failed creating unique index on TextField field
[英]Peewee check for 'UNIQUE contraint failed' during save()
為避免在數據庫中重復條目, 建議使用數據庫本身的索引功能,並使其自動處理問題。
我通過peewee遷移設置了正確的索引
migrator.add_index('mymodel', ('column1', 'column2', 'column3'), True),
因此,現在,如果我嘗試使用已存在的column1
, column2
和column3
值保存mymodel
條目,則可以正確地拋出異常。
異常如下所示:
IntegrityError: UNIQUE constraint failed: mymodel.column1, mymodel.column2, mymodel.column3
我的問題是:是否也會因為其他可能的錯誤而拋出IntegrityError
? 如果是,如何區分重復插入和其他錯誤?
我想捕捉和處理只重復插入,而不是其他錯誤。 這可能嗎?
DB引發IntegrityError來指示違反約束(違反db完整性)。 從您嘗試執行的查詢的上下文中,您可以嘗試推斷違反了什么約束(例如,添加用戶名已存在的用戶,等等)。 但是,您必須深入研究錯誤消息本身,以區分多個約束。
如果您要進行UPSERT,則可以顯式指定約束,但這只是一種利基用法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.