详细信息请参阅PropComparator的文档概述。...2.0 版中新增:composite() 构造完全支持 Python dataclasses,包括从复合类派生映射列数据类型的能力。...] (3, 4, 7, 8) [Vertex(Point(x=3, y=4), Point(x=5, y=6))] 从 2.0 版开始:composite() 构造现在支持“排序”比较,例如 <...] (3, 4, 7, 8) [Vertex(Point(x=3, y=4), Point(x=5, y=6))] 新版本 2.0 中:composite() 构造现在支持“排序”比较,如 <、...查看映射文档部分复合列类型以获取完整的使用示例。 composite()返回的MapperProperty是Composite。
SQLAlchemy 2.0 中的新 PEP 484 特性还利用了属性在源代码中明确存在而不是使用动态属性生成。...它还与 SQLAlchemy 2.0 中引入的新的PEP 484类型特性集成,而动态生成属性则不支持此特性。...doc – 将应用于生成描述符的文档字符串。...另请参见 配置自引用急切加载 - 入门文档和示例。 lazy='select' – 指定相关项目应该如何加载。默认值为select。...另请参阅 使用 ORM 关系的外键 ON DELETE 级联 - 入门文档和示例。
docs.sqlalchemy.org/en/20/contents.html 关系加载技术 原文:docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html 关于本文档...此外,selectinload.recursion_depth 参数是新的实验性参数,应该在 2.0 系列中视为“alpha”状态。...2.0 版本新增:添加了selectinload.recursion_depth 另请参阅 关系加载技术 选择 IN 加载 function sqlalchemy.orm.subqueryload(*keys...此外,selectinload.recursion_depth 参数是新的实验性参数,并且应被视为 2.0 系列的“alpha”状态。...2.0 版本中新增:添加 selectinload.recursion_depth 另请参阅 关系加载技术 选择 IN 加载 function sqlalchemy.orm.subqueryload(*
- 使用Insert,文档位于 INSERT…ON CONFLICT(Upsert) MySQL/MariaDB - 使用Insert,文档位于 INSERT…ON DUPLICATE KEY...2.0 版中的新功能。...- 使用Insert,文档位于 INSERT…ON CONFLICT (Upsert) MySQL/MariaDB - 使用Insert,文档位于 INSERT…ON DUPLICATE KEY...从版本 2.0 开始新增。...2.0 版本中新增。
有关这些特定概念的更多文档可以在基本关系模式、使用 column_property 和限制哪些列使用列延迟加载中找到。...有关这些特定概念的更多文档可在基本关系模式、使用 column_property 和使用列推迟限制加载的列中找到。...,还可以使用PEP 593 Annotated 类型共享许多类的常见列选项;请参阅将多种类型配置映射到 Python 类型和将整个列声明映射到 Python 类型以获取有关这些 SQLAlchemy 2.0...自版本 2.0 起更改:声明式 API 现在可以容纳Column 对象以及使用混合时的任何形式的mapped_column() 构造,而无需使用declared_attr()。...版本 2.0 中的变化:声明式 API 现在可以接受 Column 对象以及任何形式的 mapped_column() 构造,当使用混合类时无需使用 declared_attr()。
20/contents.html 编写继承映射的 SELECT 语句 原文:docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html 关于本文档...将加载选项应用于由 selectin_polymorphic 加载的子类 selectin_polymorphic() 发出的 SELECT 语句本身是 ORM 语句,因此我们还可以添加其他加载选项(例如文档中记录的那些位于...将加载选项应用于由 selectin_polymorphic 加载的子类 selectin_polymorphic() 发出的 SELECT 语句本身是 ORM 语句,因此我们还可以添加其他加载选项(例如文档中记录的关系加载技术...将加载器选项应用于由 selectin_polymorphic 加载的子类 由 selectin_polymorphic() 发出的 SELECT 语句本身是 ORM 语句,因此我们也可以添加其他加载器选项(例如文档中记录的那些位于
新版本 2.0 中的内容。...版本 2.0 中的新功能。...另见 通过混合组合映射层次结构 - 附带对declared_attr使用模式的背景说明的声明性混合文档。...2.0 版本中的新功能。...2.0 版中的新功能。
registry reg = registry() # declarative base class class Base(DeclarativeBase): registry = reg 在 2.0...当将 SQLAlchemy 声明性映射与其他类仪器化系统(如dataclasses和attrs)结合使用时,装饰器形式的映射很有用,尽管请注意,SQLAlchemy 2.0 现在也具有与声明性基类的 dataclasses...registry reg = registry() # declarative base class class Base(DeclarativeBase): registry = reg 从版本 2.0...使用装饰器形式的映射在将 SQLAlchemy 声明式映射与其他类的装配系统(如dataclasses和attrs)结合时很有用,但要注意,SQLAlchemy 2.0 现在也支持在声明式基类中与 dataclasses...使用声明式表的显式模式名称 如指定模式名称文档化的Table的模式名称应用于单个Table,使用Table.schema参数。
2.0 版本中的新功能:将数据类创建与 ORM 声明类集成 还有一些可用的模式,允许将现有的数据类映射,以及映射由第三方集成库attrs仪表化的类。...以前的 2.0 beta 版本需要显式地包含此属性,即使此属性的目的仅是为了使传统的 ORM 类型映射继续正常工作。...该装饰器启动一个过程来扫描类以定义类的行为的属性,然后用于生成方法、文档和注释。...以前的 2.0 beta 版本将要求明确存在此属性,即使此属性的目的仅是允许旧版 ORM 类型映射继续运行。...先前的 2.0 beta 版本将要求明确包含此属性,即使此属性的目的仅是允许旧的 ORM 类型映射继续工作。
docs.sqlalchemy.org/en/20/contents.html 列加载选项 原文:docs.sqlalchemy.org/en/20/orm/queryguide/columns.html 关于本文档...2.0 版中的新内容。 另请参阅 限制加载的列与列延迟 - 在 ORM 查询指南 中 参数: *attrs – 要加载的属性,所有其他属性都将延迟。...2.0 版中的新内容。...2.0 版本中新增。...2.0 版本中新增。
然而,还有更多的 ORM 特定功能可用;这些在 ORM 查询指南中有文档记录。...user_table.c["name", "fullname"])) SELECT user_account.name, user_account.fullname FROM user_account 2.0...CTE的文档字符串包含有关这些附加模式的详细信息。 在这两种情况下,子查询和 CTE 在 SQL 层面上都被命名为“匿名”名称。在 Python 代码中,我们根本不需要提供这些名称。...另请参阅 表值、表和列值函数、行和元组对象 - 在 PostgreSQL 文档中。 虽然许多数据库支持表值和其他特殊形式,但 PostgreSQL 往往是对这些功能需求最大的地方。...user_table.c["name", "fullname"])) SELECT user_account.name, user_account.fullname FROM user_account 版本 2.0
请参见 delete-orphan 中的 Cascades 文档。 2.0 版本新增:“仅写入”关系加载器。 创建和持久化新的仅写入集合 写入-仅集合仅允许对瞬态或挂起对象直接分配集合。...2.0 版中的新功能。...2.0 版中新增。...请参阅 delete-orphan 中的 Cascades 文档。 2.0 版本中的新功能:添加了“只写”关系加载器。...2.0 版本中新增。
例如,使用 2.0 风格的查询,我们可以限制User.addresses集合的加载方式,而不管使用的加载类型如何: from sqlalchemy.orm import with_loader_criteria...这是 join() 函数的“外连接”版本,具有相同的行为,除了生成 OUTER JOIN 外,还生成了其他用法详细信息,请参阅该函数的文档。...请参阅该函数的文档以获取其他用法细节。...请参阅该函数的文档以获取其他用法细节。...有关其他用法细节,请参阅该函数的文档。
处理大型集合 只写关系 创建和持久化新的只写集合 向现有集合添加新项目 查询项目 删除项目 批量插入新项目 项目的批量更新和删除 只写集合 - API 文档...下面的示例说明了本文档中使用的形式,这是一个完全使用 PEP 484 注释的声明性示例,其中 relationship() 构造还从 Mapped 注释中派生出目标类和集合类型,这是 SQLAlchemy...] = relationship(back_populates="child") __table_args__ = (UniqueConstraint("parent_id"),) 新版本 2.0...下面的示例说明了本文档中使用的形式,这是一个完全声明式的示例,使用PEP 484注解,其中relationship()构造还从Mapped注解中推断目标类和集合类型,这是 SQLAlchemy 声明式映射的最现代形式...] = relationship(back_populates="child") __table_args__ = (UniqueConstraint("parent_id"),) 新版本 2.0
版本 2.0 中的新特性:如果确定用于字典键的属性从未填充过任何值,则默认会引发错误。...2.0 版新功能:默认情况下,如果确定用于字典键的属性从未被填充任何值,则将引发错误。...新版 2.0 中:如果确定用于字典键的属性从未填充任何值,则默认情况下会引发错误。...新版 2.0 中:如果确定用于字典键的属性从未填充任何值,则默认情况下会引发错误。...新版本 2.0 中:如果确定用于字典键的属性从未填充任何值,则默认会引发错误。
声明式映射的文档继续在 使用声明式映射映射类 中。...因此,大多数文档示例都使用声明式形式,并建议新用户从声明式表配置开始。 在 2.0 版本中更改:现在使用registry.map_imperatively()方法来创建经典映射。...可接受的所有参数范围在Mapper中有文档记录。...因此,大多数文档示例使用声明式形式,并建议新用户从声明式表配置开始。 在 2.0 版中更改:现在使用registry.map_imperatively()方法创建经典映射。...因此,大多数文档示例使用声明式形式,建议新用户从声明式表格配置开始。 在 2.0 版更改:registry.map_imperatively() 方法现在用于创建经典映射。
使用polymorphic_abstract构建更深层次的层次结构 在 2.0 版本中新增。...请参阅编写用于继承映射的 SELECT 语句和单表继承映射的 SELECT 语句章节,了解有关继承加载技术的文档,包括在映射器配置时间和查询时间配置要查询的类。...使用polymorphic_abstract构建更深层次的层次结构 2.0 版本中新增。...请参阅 编写继承映射的 SELECT 语句 和 单一继承映射的 SELECT 语句 部分,了解有关继承加载技术的文档,包括在映射器配置时间和查询时间配置要查询的类。...请参阅编写继承映射的 SELECT 语句和单继承映射的 SELECT 语句章节,了解有关继承加载技术的文档,包括在映射器配置时间和查询时间配置要查询的类。
parent = relationship("Node", back_populates="children", remote_side=[id]) 另请参阅 邻接列表 - 更新为 SQLAlchemy 2.0
有关完整文档和示例,请参阅 基本用法。...版本 2.0 中的新功能:AutomapBase.prepare() 支持直接调用任意次数,跟踪已经处理过的表,以避免第二次处理它们。...有关完整文档和示例,请参见 基本使用。...新版本 2.0 中:AutomapBase.prepare() 可以直接调用任意次数,并跟踪已处理的表,以避免再次处理它们。...从版本 1.4 开始弃用:SQLAlchemy 1.4 和 2.0 具有全新的直接查询缓存系统,不再需要BakedQuery系统。
“rowcount” 被 ORM 工作单元 过程用于验证 UPDATE 或 DELETE 语句是否匹配了预期数量的行,并且也是 ORM 版本控制功能的重要组成部分,该功能在 配置版本计数器 中有文档说明...“rowcount” 被 ORM 工作单元 过程用于验证 UPDATE 或 DELETE 语句是否匹配预期的行数,并且还是 ORM 版本控制功能的关键,该功能在 配置版本计数器 中有文档记录。...1 RETURNING user_account.id, user_account.name 关于 UPDATE、DELETE 的进一步阅读 请参阅 UPDATE / DELETE 的 API 文档...先决条件部分 - 教程中 ORM 重点部分建立在本文档中的两个先前 ORM 中心部分的基础上: 使用 ORM 会话执行 - 介绍如何创建 ORM Session对象 使用 ORM 声明性表单定义表元数据...session True 上述行为,Session 接收了一个 User 对象,并沿着 User.addresses 关系找到了相关的 Address 对象,被称为 保存-更新级联,在 ORM 参考文档的
领取专属 10元无门槛券
手把手带您无忧上云