Python中 session flush 和 commit 的区别

flush():将挂起的操作发送到数据库,但不提交事务

user = User(name='John', age=30)

session.add(user)

session.flush() # 生成SQL并发送到数据库,分配ID,但未提交

print(user.id) # 此时可以获取到ID(如果自增)

可以继续操作

session.add(Email(address='john@example.com', user_id=user.id))

commit():提交整个事务

session.commit() # 所有操作永久保存到数据库

相关推荐
码云骑士1 小时前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python
麦聪聊数据1 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_2 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
闵孚龙2 小时前
《PyTorch 深度修炼》Dataset 和 DataLoader:数据如何喂给模型
人工智能·pytorch·python
DARLING Zero two♡2 小时前
【MySQL数据库】数据类型与表约束
数据库·mysql
goldenrolan2 小时前
A公司物料替代测试系统 v1.7:从需求到 exe/apk 的 AI 辅助全链路实践
android·自动化测试·软件测试·python·ai
菜板春2 小时前
jupyter入门-手册-特征探索
python·jupyter
Metaphor6922 小时前
使用 Python 将 PDF 转换为 HTML
python·pdf·html
极光代码工作室2 小时前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化