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() # 所有操作永久保存到数据库

相关推荐
LOVE️YOU6 分钟前
Python 数据结构的本质:位置、对象引用、Hash 与可变性
数据结构·python·哈希算法
JosieBook19 分钟前
【WinForm 代码反脆弱系列】04 数据库操作 —— 连接字符串、连接对象与连接池
数据库·oracle
李航198320 分钟前
自动动手开发图形引擎,不仅能AI建模,还能AI渲染
人工智能·python·计算机视觉·ai·ai编程
LeoCrawls25 分钟前
Python 读取 JSON 常见报错排查,附完整处理函数
python·json·php
小蒜学长25 分钟前
基于SpringBoot+Vue的小学数学智能出题系统(代码+数据库+LW)
java·数据库·spring boot·后端·智能出题系统
71-332 分钟前
MySQL密码重置
数据库·笔记·学习·mysql
zzZ··*34 分钟前
CodeBuddy 用量看板:本地解析 Token 与积分消耗,不联网不上传
python·vue·ai编程
小猴子爱上树41 分钟前
跨马翻译:批量图片翻译+视频字幕+智能抠图一站式工具
python·音视频
小朱爱编程1231 小时前
我用 Jev 做了三个实用工具:整理标签页、分诊飞书反馈、找回 GitHub 收藏
java·开发语言·人工智能·后端·python·架构·ai编程
锅里游的鱼吖1 小时前
echarts自定义折线图
前端·javascript·数据库