发布版本: 2.0.39 当前版本 | 发布日期: 2025 年 3 月 11 日
SQLAlchemy 2.0 文档
SQLAlchemy ORM
- ORM 快速入门
- ORM 映射类配置
- 关系配置
- ORM 查询指南
- 使用 Session
- 事件和内部机制
- ORM 扩展
- ORM 示例
项目版本
ORM 异常¶
SQLAlchemy ORM 异常。
对象名称 | 描述 |
---|---|
可能由 instrumentation 实现引发的异常类型。 |
-
attribute
sqlalchemy.orm.exc..
sqlalchemy.orm.exc.ConcurrentModificationError¶
- exception sqlalchemy.orm.exc.DetachedInstanceError¶
尝试访问已分离的映射实例上未加载的属性。
- exception sqlalchemy.orm.exc.FlushError¶
在 flush() 期间检测到无效条件。
- exception sqlalchemy.orm.exc.LoaderStrategyException¶
属性的加载器策略不存在。
-
method
sqlalchemy.orm.exc.LoaderStrategyException.
__init__(applied_to_property_type: Type[Any], requesting_property: MapperProperty[Any], applies_to: Type[MapperProperty[Any]] | None, actual_strategy_type: Type[LoaderStrategy] | None, strategy_key: Tuple[Any, ...])¶
-
method
- sqlalchemy.orm.exc.NO_STATE = (<class 'AttributeError'>, <class 'KeyError'>)¶
可能由 instrumentation 实现引发的异常类型。
- exception sqlalchemy.orm.exc.ObjectDeletedError¶
刷新操作未能检索到与对象的已知主键标识对应的数据库行。
当访问对象的过期属性时,或者当使用
Query.get()
检索对象时(检索时检测到对象已过期),会执行刷新操作。基于主键为目标行发出 SELECT;如果未返回任何行,则会引发此异常。此异常的真正含义仅仅是与持久对象关联的主键标识不存在任何行。该行可能已被删除,或者在某些情况下,主键已更新为新值,这超出了 ORM 对目标对象的管理范围。
-
method
sqlalchemy.orm.exc.ObjectDeletedError.
__init__(state: InstanceState[Any], msg: str | None = None)¶
-
method
- exception sqlalchemy.orm.exc.ObjectDereferencedError¶
由于对象被垃圾回收,操作无法完成。
- exception sqlalchemy.orm.exc.StaleDataError¶
操作遇到无法解释的数据库状态。
发生这种情况的条件包括
flush 可能尝试更新或删除行,并且在 UPDATE 或 DELETE 语句期间匹配了意外数量的行。请注意,当使用 version_id_col 时,UPDATE 或 DELETE 语句中的行也会根据当前已知的版本标识符进行匹配。
刷新了带有 version_id_col 的映射对象,并且从数据库返回的版本号与对象自身的版本号不匹配。
对象与其父对象分离,但是该对象之前已附加到不同的父标识(已被垃圾回收),并且无法确定新父对象是否真的是最新的“父对象”。
- exception sqlalchemy.orm.exc.UnmappedClassError¶
为未知类请求了映射操作。
-
method
sqlalchemy.orm.exc.UnmappedClassError.
__init__(cls: Type[_T], msg: str | None = None)¶
-
method
- exception sqlalchemy.orm.exc.UnmappedColumnError¶
为未知列请求了映射操作。
- exception sqlalchemy.orm.exc.UnmappedError¶
涉及预期映射不存在的异常基类。
- exception sqlalchemy.orm.exc.UnmappedInstanceError¶
为未知实例请求了映射操作。
-
method
sqlalchemy.orm.exc.UnmappedInstanceError.
__init__(obj: object, msg: str | None = None)¶
-
method
上一页: ORM 内部机制 下一页: ORM 扩展
© 版权 2007-2025, SQLAlchemy 作者和贡献者。
flambé! 龙和 The Alchemist 图像设计由 Rotem Yaari 创作并慷慨捐赠。
使用 Sphinx 7.2.6 创建。文档最后生成时间:2025 年 3 月 11 日星期二下午 02:40:17 EDT