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

相关推荐
打工的小王4 分钟前
Redis(一)redis的下载安装与使用
数据库·redis·缓存
夔曦8 分钟前
【python】月报考勤工时计算
开发语言·python
fl1768319 分钟前
基于python实现PDF批量加水印工具
开发语言·python·pdf
i02089 分钟前
Prompt
python
Freed&13 分钟前
用 Python 写一个“会下小纸条雨”的暖心程序 —— Flask 网页版 + Tkinter 桌面版
python
_codemonster19 分钟前
手语识别及翻译项目实战系列(五)整体架构代码详细代码实现
人工智能·python·计算机视觉·架构
煎蛋学姐21 分钟前
SSM医患交流m8996(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·医患交流系统
Eugene__Chen22 分钟前
Java的SPI机制(曼波版)
java·开发语言·python
程序猿202325 分钟前
JVM与JAVA
java·jvm·python
麦聪聊数据28 分钟前
为何“零信任”时代需要重构数据库访问层?
数据库·sql