我有一个非常简单的 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/