为了避免数据库中的重复条目,recommended使用数据库本身的索引特性并让它自动处理问题。在
我已经用peewee迁移设置了正确的索引
migrator.add_index('mymodel', ('column1', 'column2', 'column3'), True),
所以现在,如果我试图用已经存在的column1
、column2
和{mymodel
条目,我会正确地得到一个异常。在
例外情况如下:
^{pr2}$我的问题是:IntegrityError
是否也曾因为其他可能的错误而抛出?如果是,如何区分重复插入和其他错误?在
我只想捕获和处理重复插入而不是其他错误。这可能吗?在
DB引发IntegrityError,以指示约束冲突(违反DB的完整性)。从您试图执行的查询的上下文中,您可以尝试推断违反了什么约束(例如,添加用户名已经存在的用户,等等)。但是您必须深入研究错误消息本身来区分多个约束。在
如果你正在做一个UPSERT,你可以显式地指定约束,但这是一种利基用法。在
相关问题 更多 >
编程相关推荐