查看 Connection.execution_options (lib/sqlalchemy/engine/base.py) 的源代码,该方法所做的只是向连接添加选项。
这个想法是这些选项会影响例如查询的未来行为。
举个例子:
result = connection.execution_options(stream_results=True).\
execute(stmt)
在这里,仅此查询的行为在连接中间发生了变化。在某种程度上,它“生成”或将自己克隆为具有略微不同行为的对象。
在这里,您还可以将自动提交设置为 True。例子
# obtain a connection
connection = ...
# do some stuff
# for the next section we want autocommit on
autocommitting_connection = connection.execution_options(autocommit=True)
autocommitting_connection.execute(some_insert)
result = autocommitting_connection.execute(some_query)
# done with this section. Continue using connection (no autocommit)
这就是文档的该部分的含义。“生成方法”是指返回可以继续使用的同一实例的修改副本的方法。这适用于 Connection、Engine、Executable 类。