python - 从 session 中取消绑定(bind)对象

标签 python sqlalchemy

是否可以从 SQLAlchemy session 中取消绑定(bind)对象?

我曾经deepcopy它,但是像这样seems not to be possible当使用关联代理时,我正在寻找另一种解决方案来从 session 中删除对象以将其添加到另一个。

最佳答案

Expunge 从 Session 中删除一个对象,将持久实例发送到分离状态,并将挂起的实例发送到 transient :

session.expunge(obj1)

更新:可以使用

将分离的对象附加到相同或另一个 session
session2.add(obj1)

或合并

session2.merge(obj1)

使用 merge(),给定的实例不会放在 session 中,并且可以与不同的 session 关联或分离。 merge() 对于获取任何类型的对象结构的状态而不考虑其来源或当前 session 关联并将该状态置于 session 中非常有用。

关于python - 从 session 中取消绑定(bind)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213665/

相关文章:

postgresql - UWSGI Flask SQLAlchemy 间歇性 PostgreSQL 错误,错误为 "WARNING: there is already a transaction in progress"

python - 如何使用 flask-sqlalchemy 将区分大小写的字符串插入 Mysql?

python - SQLAlchemy: AttributeError: 'Table' 对象没有属性 'id'

python - SQLAlchemy 删除不会级联

python - 让 SQLAlchemy 在连接中使用所需的表

python - 如何在Python中将内存中的WebM音频文件转换为mp3音频文件?

python - MongoEngine 中如何让引用字段接受多个文档模式?

python - 有没有办法可以设置 python turtle 的背景颜色?

python - 使用 Python 将 .csv 文件分成 block

python - pyqt4 QTextEdit - 如何设置最大长度?