繁体   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