Python 使用SQLalchemy 0.6保存或更新

Python 使用SQLalchemy 0.6保存或更新,python,sql,sqlalchemy,Python,Sql,Sqlalchemy,保存或更新已在0.6中删除。在0.6及以上版本中,是否有其他方法可以使用它们 我注意到存在会话对象的方法\u save\u或\u update\u state,但此方法上没有文档。 更新()、保存或更新()、保存()是 都不赞成。add()放置一个 在所有情况下,会话中的对象, 使用持久性信息 已与要创建的对象关联 确定插入或更新。这 意思是如果你刚做了一个新的 Foo(id=someid),这是暂时的- SQLAlchemy没有加载它。会的 插入 请记住 会话维护一个 所有唯一的主键都已存在

保存或更新已在0.6中删除。在0.6及以上版本中,是否有其他方法可以使用它们

我注意到存在会话对象的方法
\u save\u或\u update\u state
,但此方法上没有文档。

更新()、保存或更新()、保存()是 都不赞成。add()放置一个 在所有情况下,会话中的对象, 使用持久性信息 已与要创建的对象关联 确定插入或更新。这 意思是如果你刚做了一个新的 Foo(id=someid),这是暂时的- SQLAlchemy没有加载它。会的 插入

请记住 会话维护一个 所有唯一的主键都已存在 加载到内存中,以及 从客户处收到的状态 数据库因为这个原因,你 一般来说,我们不能把一个物体放进去 会话包含一些任意数据, 并期望它能“取代” 将由加载的实际行 交易。炼金术不会 知道怎么处理它,因为它已经 不知道发生了什么变化 到这一行与已经发生的事情 现在

如果你想创建一个 新的Foo(),主键可能 或者可能不存在于 数据库,是否要合并状态 用一个 会议制作。使用 此用例的session.merge()。
这将加载现有对象 从当前交易中,如果有, 并合并您的外部状态 对象,返回 例如。您传递给它的实例 保持不变,且不在 会议

Session.merge()
适用于新对象和现有对象。但您必须记住,
merge()
返回绑定到会话的对象,而不是
add()
(以及旧版本中的
save\u或更新()
),后者将对象作为参数传递到会话中。此行为是确保会话中每个标识都有一个对象所必需的。

session.merge()
如果将数据库设置为主从式,通常希望从从式查询,但写入主式,则此行为将不起作用。我进行了这样的设置,并在编写之前从主机重新查询,然后如果数据确实不在主机上,则使用
会话.add()

重复?