python - 如何使用 sqlalchemy IntegrityError 查找有问题的属性

标签 python sqlalchemy integrity

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

相关文章:

python - flask-migrate/alembic 有没有办法列出已应用于数据库的迁移?

python - Flask WTForms - 基于多个表单字段的自定义验证器

git - 如何验证 git merge 不包含额外的更改?

http - 关于Http大文件下载的MD5校验

mysql - 违反完整性约束 - Null MySQL

python - 如何修复 RuntimeError "Expected object of scalar type Float but got scalar type Double for argument"?

python - Pandas 多索引中带有大写字母标签的错误

python - 如何将具有 NULL 值的 panda 列转换为 int?

python - 如何将 tweepy 流 json 转储到文本文件中?

python - SQLAlchemy 中带计数的子查询