Release: 1.4.25 | Release Date: September 22, 2021

SQLAlchemy 1.4 Documentation

ORM例外

SqlAlchemy ORM异常。

Object Name Description

ConcurrentModificationError

alias of sqlalchemy.orm.exc.StaleDataError

NO_STATE

检测实现可能引发的异常类型。

attribute sqlalchemy.orm.exc..sqlalchemy.orm.exc.ConcurrentModificationError

alias of sqlalchemy.orm.exc.StaleDataError

exception sqlalchemy.orm.exc.DetachedInstanceError(*arg, **kw)

试图访问已分离的映射实例上已卸载的属性。

exception sqlalchemy.orm.exc.FlushError(*arg, **kw)

刷新()期间检测到无效条件。

exception sqlalchemy.orm.exc.LoaderStrategyException(applied_to_property_type, requesting_property, applies_to, actual_strategy_type, strategy_key)

属性的加载程序策略不存在。

sqlalchemy.orm.exc.NO_STATE = (<class 'AttributeError'>, <class 'KeyError'>)

检测实现可能引发的异常类型。

exception sqlalchemy.orm.exc.ObjectDeletedError(state, msg=None)

刷新操作无法检索与对象的已知主键标识相对应的数据库行。

当对象上的过期属性被访问时,或者当 Query.get() 用于检索检索到过期的对象。根据主键为目标行发出选择;如果未返回任何行,则引发此异常。

这个异常的真正含义就是不存在与持久对象关联的主键标识符的行。该行可能已被删除,或者在某些情况下,主键已更新为新值,超出了ORM对目标对象的管理范围。

exception sqlalchemy.orm.exc.ObjectDereferencedError(*arg, **kw)

由于对象被垃圾收集,操作无法完成。

exception sqlalchemy.orm.exc.StaleDataError(*arg, **kw)

操作遇到未经计数的数据库状态。

导致这种情况发生的条件包括:

  • 刷新可能试图更新或删除行,并且在UPDATE或DELETE语句期间匹配了意外的行数。请注意,当使用version_id_col时,update或delete语句中的行也将与当前已知版本标识符匹配。

  • 已刷新版本为“id”列的映射对象,从数据库返回的版本号与对象本身的版本号不匹配。

  • 对象与其父对象分离,但该对象以前附加到垃圾收集的另一个父标识,如果新父对象确实是最新的“父对象”,则无法做出决定。

exception sqlalchemy.orm.exc.UnmappedClassError(cls, msg=None)

为未知类请求了映射操作。

exception sqlalchemy.orm.exc.UnmappedColumnError(*arg, **kw)

对未知列请求了映射操作。

exception sqlalchemy.orm.exc.UnmappedError(*arg, **kw)

不存在涉及预期映射的异常的基。

exception sqlalchemy.orm.exc.UnmappedInstanceError(obj, msg=None)

为未知实例请求了映射操作。

Previous: ORM内构件 Next: ORM扩展