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

SqlAlchemy 2.0 中文文档(三十六)

对于支持它的后端,跨后端的功能差异很大,包括对 executemany() 和其他返回多行的语句的限制。请阅读正在使用的数据库的文档注释,以确定 RETURNING 的可用性。...对于支持它的后端,跨后端的功能差异很大,包括对 executemany() 和其他返回多行语句的限制。请阅读正在使用的数据库的文档注释,以确定 RETURNING 的可用性。...对于支持的后端,跨后端的功能差异很大,包括对 executemany() 和其他返回多行的语句的限制。请阅读所使用数据库的文档注释,以确定 RETURNING 的可用性。...对于支持它的后端,跨后端的功能差异很大,包括对 executemany()和返回多行的其他语句的限制。请阅读所使用数据库的文档注释,以确定 RETURNING 的可用性。...对于支持它的后端,跨后端的功能差异很大,包括对 executemany()和其他返回多行的语句的限制。请阅读所使用数据库的文档注释,以确定 RETURNING 的可用性。

40410

SqlAlchemy 2.0 中文文档(十七)

发送到Session.execute.params参数的参数字典列表,与Insert对象本身分开,将为语句调用批量插入模式,这基本上意味着该操作将尽可能地优化多行: >>> from sqlalchemy...使用 RETURNING 获取新对象 批量 ORM 插入功能支持选定后端的 INSERT…RETURNING,该功能可以返回一个Result对象,该对象可能会返回单个列以及对应于新生成记录的完全构造的...举例来说,下面发出一个 UPDATE,影响多行的“fullname”字段 >>> from sqlalchemy import update >>> stmt = ( ......举个例子,下面发出了一个更新,影响了多行的“fullname”字段 >>> from sqlalchemy import update >>> stmt = ( ......要删除多行联接继承对象而不使用级联外键,需分别为每个表发出 DELETE 语句: >>> from sqlalchemy import delete >>> session.execute(delete

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

    SqlAlchemy 2.0 中文文档(一)

    在这种情况下,SQLAlchemy 使用特殊逻辑重新组织 INSERT 语句,以便在支持 RETURNING 的同时可以为多行调用它。...在这种情况下,SQLAlchemy 利用特殊逻辑重新组织 INSERT 语句,以便可以为多行调用它,同时仍支持 RETURNING。...但是 RETURNING 子句也可以使用 `Insert.returning()` 方法来明确指定;在这种情况下,执行语句时返回的 `Result` 对象具有可提取的行: ```py >>> insert_stmt...但是,也可以使用Insert.returning()方法显式指定 RETURNING 子句;在这种情况下,执行该语句时返回的Result对象具有可以获取的行: >>> insert_stmt = insert...但是,也可以使用Insert.returning()方法显式指定 RETURNING 子句;在这种情况下,执行该语句时返回的Result对象具有可以获取的行: >>> insert_stmt = insert

    93510

    SqlAlchemy 2.0 中文文档(三)

    在使用 ORM 时,对所有 INSERT、UPDATE 和 DELETE 语句使用 Session.execute() 方法会返回此类型的对象。...在使用 ORM 时,Session.execute() 方法为所有 INSERT、UPDATE 和 DELETE 语句返回此类型的对象。...ORM 的批量/多行功能Session直接使用insert()、update()和delete()构造,并且它们的使用方式类似于与 SQLAlchemy Core 一起使用它们的方式(首次在本教程中介绍于使用...批量/多行 INSERT、upsert、UPDATE 和 DELETE 此部分讨论的工作单元技术旨在将 dml 或 INSERT/UPDATE/DELETE 语句与 Python 对象机制集成,通常涉及复杂的相互关联对象图...ORM Session的批量/多行功能直接使用了 insert()、update() 和 delete() 构造,并且它们的使用方式类似于它们在 SQLAlchemy Core 中的使用方式(首次在本教程中介绍了使用

    41520

    SqlAlchemy 2.0 中文文档(七十七)

    #2161 行为变化 - ORM 当按属性查询时,现在会返回组合属性的对象形式 现在,将Query与组合属性结合使用时,会返回由该组合维护的对象类型,而不是被拆分为个别列。...这与 SQLAlchemy 中缺少多对一关系返回 None 的事实一致,因此代理值也应该如此。...同样,这个操作也会在Insert或Update中发生: stmt = mytable.update().values(col=bp) 在上面的例子中,bp保持不变,但在执行语句时将使用String类型,...类似地,这个操作发生在Insert或Update中: stmt = mytable.update().values(col=bp) 在上面的例子中,bp保持不变,但当语句执行时将使用String类型,我们可以通过检查...类似地,这个操作发生在Insert或Update中: stmt = mytable.update().values(col=bp) 在上面的例子中,bp保持不变,但当语句执行时将使用String类型,我们可以通过检查

    15010

    SqlAlchemy 2.0 中文文档(三十七)

    当覆盖内置 SQL 结构的编译时,@compiles 装饰器会调用适当的类(确保使用类,即 Insert 或 Select,而不是创建函数,比如 insert() 或 select())。...当重写内置 SQL 构造的编译时,@compiles 装饰器会在适当的类上调用(确保使用类,即 Insert 或 Select,而不是创建函数,如 insert() 或 select())。...返回值是一个Compiled对象。对返回值调用str()或unicode()将产生结果的字符串表示。Compiled对象还可以使用params访问器返回绑定参数名称和值的字典。...使用 lambda_stmt() 函数构建 StatementLambdaElement: from sqlalchemy import lambda_stmt stmt = lambda_stmt(...例如: >>> def my_stmt(parameter): ... stmt = lambda_stmt( ...

    35310

    SqlAlchemy 2.0 中文文档(十五)

    在这种情况下,通常无法仅使用两个 INSERT 语句插入“widget”和“entry”行;必须执行 UPDATE 以保持外键约束满足。...在这种情况下,通常不可能只使用两个 INSERT 语句插入“widget”和“entry”行;必须执行 UPDATE 以保持外键约束得到满足。...的上下文中使用Session.execute()方法调用(就像用于 ORM-Enabled INSERT、UPDATE 和 DELETE 语句功能的现在使用的update()和delete()构造一样)...、UPDATE 和 DELETE 语句(ORM-Enabled INSERT, UPDATE, and DELETE statements) ORM 批量 INSERT 语句(ORM Bulk INSERT...在使用 ORM 时,通常会使用 aliased() 构造来表示这些目标,但这不是严格要求的,特别是如果加入的实体不会在结果中返回的情况下。

    26110

    SqlAlchemy 2.0 中文文档(七十六)

    需要一行)出现故障,以及在插入多行的情况下出现任意返回数据(例如,许多行中的第一行)。...如果需要插入的数据,应该使用常规的显式Insert.returning()来返回可变数量的结果行。...这有助于修复一个 bug,即在支持的后端上,INSERT…FROM SELECT 结构会被错误地编译为“隐式返回”,这会导致在插入零行的情况下出现故障(因为隐式返回期望一行),以及在插入多行的情况下出现任意返回数据...returning 需要一行),以及在插入多行的情况下出现任意返回数据(例如,多行中的第一行)。...以前,有一个文档说明,即在某些数据库不支持返回并且因此无法执行“implicit”返回的情况下,可能更喜欢使用 inline=True 与 INSERT…FROM SELECT,但无论如何,INSERT

    10510
    领券