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