Sql 当插入到具有多个唯一字段的表中时,如何知道哪些字段导致IntegrityError?

Sql 当插入到具有多个唯一字段的表中时,如何知道哪些字段导致IntegrityError?,sql,postgresql,sqlalchemy,Sql,Postgresql,Sqlalchemy,我在PostgreSQL中有一个具有多个唯一字段的表。e、 g: CREATE TABLE User ( username VARCHAR, email VARCHAR, UNIQUE (username), UNIQUE (email), ) 当我使用SQLAlchemy插入此表时,可能会出现IntegrityError。我可以捕获异常,但异常对象似乎没有一个属性或指示导致错误的字段的内容 如何知道哪个字段违反了唯一性约束?我知道解析异常消息会起作用,但

我在PostgreSQL中有一个具有多个唯一字段的表。e、 g:

CREATE TABLE User (
    username VARCHAR,
    email    VARCHAR,
    UNIQUE (username),
    UNIQUE (email),
)
当我使用SQLAlchemy插入此表时,可能会出现
IntegrityError
。我可以捕获异常,但异常对象似乎没有一个属性或指示导致错误的字段的内容


如何知道哪个字段违反了唯一性约束?我知道解析异常消息会起作用,但是有没有更简单的方法呢?

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