版本:1.1.0b2 |发布日期:2016年7月1日

SQLAlchemy 1.1文档

ORM异常

SQLAlchemy ORM异常。

sqlalchemy.orm.exc。 T0> ConcurrentModificationError T1> ¶ T2>

StaleDataError的别名

异常 sqlalchemy.orm.exc。 DetachedInstanceError

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

异常 sqlalchemy.orm.exc。 FlushError

在flush()中检测到无效的条件。

异常 sqlalchemy.orm.exc。 MultipleResultsFound

一个数据库结果是必需的,但是不止一个被发现。

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

工具实现可能引发的异常类型。

异常 sqlalchemy.orm.exc。 NoResultFound

数据库结果是必需的,但没有被发现。

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

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

刷新操作在对象上访问过期属性时,或者使用Query.get()检索检索到的对象时检测为过期。基于主键针对目标行发出SELECT;如果没有行被返回,则引发此异常。

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

异常 sqlalchemy.orm.exc。 ObjectDereferencedError

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

异常 sqlalchemy.orm.exc。 StaleDataError

遇到数据库状态的操作未被记录。

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

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

  • version_id_col的映射对象被刷新,并且从数据库返回的版本号与对象本身的版本号不匹配。

  • 一个对象被从它的父对象中分离出来,然而这个对象以前被附加到一个被垃圾回收的不同的父身份,如果新父对象真的是最近的“父对象”,那么就不能做出决定。

    0.7.4版本的新功能

异常 sqlalchemy.orm.exc。 UnmappedClassError clsmsg =无 T5> ) T6> ¶ T7>

要求一个未知类的映射操作。

异常 sqlalchemy.orm.exc。 UnmappedColumnError

在未知列上请求映射操作。

异常 sqlalchemy.orm.exc。 UnmappedError

包含预期映射不存在的异常的基础。

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

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