在插入具有多个唯一字段的表时,如何知道哪个字段导致完整性错误?

时间:2014-12-24 11:09:14

标签: sql postgresql sqlalchemy

我在PostgreSQL中有一个包含多个唯一字段的表。 e.g:

CREATE TABLE User (
    username VARCHAR,
    email    VARCHAR,
    UNIQUE (username),
    UNIQUE (email),
)

当我使用SQLAlchemy插入此表时,可能会出现IntegrityError。我可以捕获异常,但似乎异常对象没有属性或指示哪个字段导致错误。

我如何知道哪个字段违反了唯一性限制?我知道解析异常消息会有效但是有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有魔法,你必须解析异常字符串。 IntegrityError只是底层DB-API数据库操作错误的包装器,它没有做任何花哨的事情。