首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SqlAlchemy 2.0 中文文档(二十)

自 1.4.6 版本更改:当Result对象中获取 ORM 行时,该对象使用Result.unique()过滤器,并同时使用yield_per执行选项时,会引发异常。...此元素首先存在于支持按行“分片”扩展中,其中对象可以特定数据库表任意数量副本加载,尽管这些副本具有重叠主键值。...其中一个示例是使用翻译模式名称功能,该功能可以影响查询范围内模式选择,具有相同名称表中填充Session对象。...这个元素首先存在于支持每行“分片”扩展中,其中对象可以特定数据库表任意数量副本中加载,尽管这些副本具有重叠主键值。...此元素首先存在以支持执行按行“sharding”扩展,其中对象可以特定数据库表任何数量副本中加载,尽管它们具有重叠主键值。

6710

SqlAlchemy 2.0 中文文档(十五)

另请参阅 仅写关系 - 在 ORM 查询指南中 dynamic - 属性将为所有读操作返回预配置Query对象,可以在迭代结果之前应用进一步过滤操作。...SQL 构造实现,这些实现旨在根据相关对象特定实例来过滤 `relationship()` 绑定属性,该实例可以给定 持久化(或不太常见 分离)对象实例中拆解适当属性值,并按照目标 `relationship...SQL 构造实现,这些实现旨在根据相关对象特定实例来过滤`relationship()`-绑定属性,它可以给定持久(或较少见分离)对象实例中解包适当属性值,并构造 WHERE 条件,以便针对目标...SQL 构建实现,用于基于特定相关对象实例来过滤relationship()绑定属性,这可以给定持久(或更少见分离)对象实例中解包适当属性值,并根据目标relationship()构造 WHERE...SQL 构建实现,用于基于特定相关对象实例来过滤relationship()绑定属性,这可以给定持久(或更少见分离)对象实例中解包适当属性值,并根据目标relationship()构造 WHERE

8610
您找到你想要的搜索结果了吗?
是的
没有找到

SqlAlchemy 2.0 中文文档(二十五)

然后回滚和提交事件指的是 DBAPI 连接自身直接接收回滚或提交指令时候。 ## 属性更改事件 属性更改事件允许拦截对象特定属性被修改时机。...此属性主要理由是支持水平分片扩展,在此扩展创建特定查询执行时间钩子中可用。为此,该属性仅打算在查询执行时间具有意义,而且重要是不是在此之前任何时间,包括查询编译时间。...对于像 Query 检索到 ORM 选择,这是 ORM 查询生成 select 一个实例。...对于Query检索 ORM 选择,这是 ORM 查询生成select一个实例。...这将清除与此Session关联所有 ORM 对象,结束任何正在进行事务,并释放此Session自身关联Engine对象中签出任何Connection对象

8210

2022年了有哪些值得推荐.NET ORM框架?

它解决了对象和关系型数据库之间数据交互问题,ORM作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体操作业务对象时候,就不需要再去和复杂SQL语句打交道,只需简单操作对象属性和方法...EntityFramework-Plus - EF增强工具集,包括过滤器,审核,缓存,查询,批删除,批更新等。...EntityFramework.VersionedProperties -  将对象里每次变更历史自动保存到一个特定属性里。审计或者做历史版本时比较适用。...Dapper Dapper是一个简单.NET对象映射器,在速度方面具有"King of Micro ORM"头衔,几乎与使用原始ADO.NET数据读取器一样快。...查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类数据并执行任何操作(加入查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。

5.8K11

SqlAlchemy 2.0 中文文档(三)

这两种使用方式在以下章节中讨论:使用工作单元模式更新 ORM 对象 和 使用工作单元模式删除 ORM 对象。...squidward 和 krabs 对象现在具有这些新主键标识符,并且我们可以通过访问 id 属性查看它们: >>> squidward.id 4 >>> krabs.id 5 提示 当 ORM 在刷新对象时为什么会发出两个单独...Krabs") >>> u1.addresses [] 此对象是 Python list SQLAlchemy 特定版本,具有跟踪和响应对其进行更改能力。...当内存中有几十个 ORM 对象分别引用少量未加载属性时,对这些对象常规操作可能会产生许多额外查询,这些查询可能会累积(也称为 N 加一问题),更糟糕是它们是隐式发出。...当内存中有几十个 ORM 对象各自引用了少量未加载属性时,对这些对象常规操作可能会产生许多额外查询,这些查询可能会积累起来(也被称为 N 加一问题),更糟糕是它们是隐式生成

11010

2022年了有哪些值得推荐.NET ORM框架?

它解决了对象和关系型数据库之间数据交互问题,ORM作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体操作业务对象时候,就不需要再去和复杂SQL语句打交道,只需简单操作对象属性和方法...EntityFramework-Plus - EF增强工具集,包括过滤器,审核,缓存,查询,批删除,批更新等。...EntityFramework.VersionedProperties -  将对象里每次变更历史自动保存到一个特定属性里。审计或者做历史版本时比较适用。...Dapper Dapper是一个简单.NET对象映射器,在速度方面具有"King of Micro ORM"头衔,几乎与使用原始ADO.NET数据读取器一样快。...查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类数据并执行任何操作(加入查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。

3.8K20

SqlAlchemy 2.0 中文文档(十七)

### ORM “upsert” 语句 在 SQLAlchemy 中,选定后端可能包括特定方言Insert 构造,这些构造还具有执行“upserts”或将参数集中现有行转换为近似 UPDATE...不支持异构参数集 - 值集中每个元素必须具有相同列。...### ORM “upsert”语句 使用 SQLAlchemy 选定后端可能包括特定于方言Insert构造,这些构造还具有执行“upserts”或将参数集中现有行转换为近似 UPDATE 语句能力...SQLAlchemy 部分后端可能包含特定于方言Insert构造,此外还具有执行“upserts”或将参数集中现有行转换为近似 UPDATE 语句能力。...基于主键联合表继承批量更新 ORM 批量更新在使用具有联合表继承映射时与 ORM 批量插入具有相似的行为;正如联合表继承批量插入中所描述,批量更新操作将为映射中表示每个表发出一个更新语句,其中给定参数包括要更新

16410

SqlAlchemy 2.0 中文文档(二十七)

对象名称 描述 AttributeEventToken 在属性事件链中传播标记。 AttributeState 提供相应于特定映射对象特定属性检查接口。...UOWTransaction class sqlalchemy.orm.AttributeState 为特定映射对象特定属性提供相应检查接口。...该方法在查询执行时传递了语句对象和一组“行处理”函数;当给定一个结果行时,这些处理函数将返回单个属性值,然后可以将其调整为任何类型返回数据结构。...另请参阅 对象状态简介 attribute unloaded 返回不具有加载值集合。 这包括已过期属性和任何未填充或未修改属性。...用于在 Python 中进行 SQL 表达式评估函数,例如用于 ORM 混合属性函数,以及在多行更新或删除后用于匹配会话中对象 ORM“评估器”。

11810

SqlAlchemy 2.0 中文文档(二十六)

参数: update_context – 包含有关更新更新上下文”对象,包括这些属性: session - 涉及Session query -调用此更新操作Query对象。...,接收一个包含一个或多个包含列级默认值或更新处理程序属性已被刷新对象实例。...请参阅 ORM 查询事件中新示例,展示了拦截和修改 ORM 查询新方法,最常见目的是添加任意过滤条件。...参数: update_context - 包含关于更新更新上下文”对象,包括这些属性: session - 涉及Session。 query - 调用此更新操作Query 对象。...当对象任何基于列属性被调用“设置属性”操作或其集合被修改时,对象被标记为脏。如果在更新时,没有基于列属性有任何净变化,那么不会发出 UPDATE 语句。

9210

django 1.8 官方文档翻译: 2-6-4 数据库访问优化

理解缓存属性 和整个QuerySet缓存相同,ORM对象属性结果中也存在缓存。通常来说,不可调用属性会被缓存。...注意如果你确实要用到它们,ORM会在另外查询之中获取它们。如果你不能够合理地使用这些函数,不如不用。...但是: 不要过度使用 count() 和 exists() 如果你需要查询集中其他数据,就把它加载出来。...{% if emails %}那一行调用了QuerySet.bool(),它导致user.emails.all()查询在数据库上执行,并且至少在第一行以一个ORM对象形式返回。...但是要注意,这些批量更新方法不会在单独实例上面调用save()或者delete()方法,意思是任何你向这些方法添加自定义行为都不会被执行,包括由普通数据库对象信号驱动任何方法。

1.1K30

SqlAlchemy 2.0 中文文档(十三)

动态关系加载器 - API 对象名称 描述 AppenderQuery 支持基本集合存储操作动态查询。 DynamicMapped 代表“动态”关系 ORM 映射属性类型。...对于大型集合来说,这是不可行,因此我们转而依靠数据库自身能力,使用外键 ON DELETE 规则自动更新或删除行,指示工作单元无需实际加载这些行即可处理它们。...警告 需要注意是,count() 返回值与此查询 .all() 方法等返回 ORM 对象数量不同。...警告 重要是要注意,count() 返回值 不同于此查询 .all() 方法等返回 ORM 对象数。...对于大型集合来说,这是不可行,因此我们转而依赖数据库自身能力来使用外键 ON DELETE 规则自动更新或删除行,指示工作单元放弃实际需要加载这些行以处理它们。

5410

SqlAlchemy 2.0 中文文档(十)

用户提供逻辑必须检测到“p”到“q” LEFT OUTER JOIN 没有“q”侧条目。## 对任意子查询映射类 类似于针对连接映射,也可以将一个普通select()对象与映射器一起使用。...可以通过在查询时使用带有 raiseload=False deferred() 选项来更改此行为。 版本 1.4 开始新增。...声明性映射过程在扫描类时寻找这些declared_attr可调用对象,并假定任何标记为declared_attr属性将是一个可调用对象,将生成特定于声明性映射或表配置对象。...__name__.lower() declared_attr也可以直接应用于映射类,以允许在使用映射继承方案时,属性可以在子类上动态配置自身。...Mapper具有属性几个预过滤视图,限制了返回属性类型,包括synonyms、column_attrs、relationships和composites。

10410

SqlAlchemy 2.0 中文文档(二十四)

## 强制在具有默认值列上使用 NULL ORM 将任何从未在对象上设置过属性视为“默认”情况;该属性将在 INSERT 语句中被省略: class MyObject(Base): __tablename...强制将 NULL 值放入具有默认值ORM 认为对象上从未设置任何属性都是“默认”情况;该属性将从 INSERT 语句中省略: class MyObject(Base): __tablename...这会清除与此Session关联所有 ORM 对象,结束任何正在进行事务,并释放此Session自身关联Engine对象中签出任何Connection对象。...Session.merge() 检查源实例主键属性,并尝试将其与会话中具有相同主键实例进行协调。如果在本地找不到,它将尝试根据主键数据库加载对象,如果找不到,则创建一个新实例。...Session.merge()检查源实例主键属性,并尝试将其与会话中具有相同主键实例进行协调。如果在本地找不到,它会尝试根据主键数据库加载对象,如果找不到任何对象,则创建一个新实例。

13910
领券