mysql事务-与pymyql的事务

本文深入探讨了数据库事务的概念及其实现方式,并通过具体的Python代码示例,演示了如何使用pymysql模块来管理和控制事务,确保数据的一致性和完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

》了解事务

数据库的操作,比如银行转帐

一方扣款,一方收款

两个操作要么同时完成,要么同时不完成

这就是事务

》通过例子了解

创建一个数据库

在这里插入图片描述

插入数据

新建了两个用户,让他们有资金

在这里插入图片描述

开始事务

》事务

操作时开两个mysql客户端,一个操作事务,一个实时查询

观注一下是否有变化

在这里插入图片描述

开始事务的操作

start transaction

在这里插入图片描述

如果发生了错误,可以回滚

rollback

在这里插入图片描述

金额回到了从前

再完整的再操作一次

先从一个人扣钱

在这里插入图片描述

再从另一个人帐户上加钱

在这里插入图片描述

提交事务

commit

在这里插入图片描述

》通过python来处理事务

代码分析

在这里插入图片描述

本代码中模拟了几个sql语句的操作

明确这样几个点

游标对象.execute(sql语句)

只是准备执行,语句并未真正的生效

只有数据库的连接对象 commit()了以后

才真的生效了

代码中通过raise Exception模拟了一个错误

在错误发生后,进处异常处理代码块

通过回滚,让操作回到最近一次commit的地方

防止多余的操作

详情先分析代码再做小结

》小结

pymysql的操作都是基于事务的

sql语句执行后一定要commit才会真真景响到数据库

让数据库的连接对象commit

如果发生错误,可以通过连接对象的rollback()返回

》继续关于mysql的事务

在这里插入图片描述

先创建表和插入数据

在这里插入图片描述

然后rollback

问题? 这三条数据是否有插入成功到数据库中

答案:

在这里插入图片描述

有插入。原因需要明确

开启事务

插入数据

在这里插入图片描述
提交,让数据真正的存进去

在这里插入图片描述

开始存档操作,savepoint保留点

  • 同时开启一个横向的时间图,把数据和存档点记录一下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

》读取存档,回到存档点

在这里插入图片描述

回到保留点,存档1的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值