我有一个非常简单的 SqlAlchemy 模型

class User(Base):
    """ The SQLAlchemy declarative model class for a User object. """
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    phone = Column(String, unique=True)
    email = Column(String, unique=True)

插入新用户时,如果电子邮件或电话重复,则可能会出现 IntegrityError

有什么方法可以检测哪些列违反了完整性错误?或者是进行单独查询以查看或存在值的唯一方法?

最佳答案

您可以使用以下方式获取底层代码、消息,并相应地格式化消息。

except exc.IntegrityError as e:
       errorInfo = e.orig.args
       print(errorInfo[0])  #This will give you error code
       print(errorInfo[1])  #This will give you error message

顺便说一句,你必须从 sqlalchemy 导入 exc:from sqlalchemy import exc如果您需要任何其他信息,请告诉我。我可以试试看

有关 sqlalchemy exc 的更多信息,请查找代码:https://github.com/zzzeek/sqlalchemy/blob/master/lib/sqlalchemy/exc.py

关于python - 如何使用 sqlalchemy IntegrityError 查找违规属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11313490/

10-16 02:23