mysql 开启事务_MySQL 8.0 事务定义和基本操作

MySQL 事务(Transaction)

1.什么是事务?

事务(Transaction)

是访问和更新数据库的程序执行单元;

是一个最小的不可分割的工作单元,能保证一个业务的完整性。

事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。

题目:

银行转帐,a 账户向 b 账户转100元。

分析:

a 账户减少100元,同时,b 账户增加100元。

a账户 ➡ -100

update 

b账户 ➡ +100

update 

以上两条sql语句,在实际执行中,需要要么同时成功,要么同时失败。
若只有一条执行成功、一条执行失败,则会出现数据前后不一致的问题。

update 

多条sql语句,可能有同时成功的要求。或者同时失败。

mysql如何控制事务?

1.mysql默认是开启事务,即 autocommit = 1,自动提交事务。

select 

fc9370694f299969a2a7d90ef0814d96.png

2.默认事务开启的作用:

执行sql语句时,效果会立即体现出来,且不能回滚。

例如:

查看数据库列表:

show 

3222c0a540d1d87d9d77fdd2d265c21a.png

创建bank数据库:

create database bank;

a6197652169bf4ef6ef3b889f83c5fa7.png

选中bank数据库:

use bank

203dd8f5387c8fb7b99c7fe542afef6b.png

创建user表格,

create 

和添加user表格中的 a 数据:

insert 

dd59c5baee126e10901359d52bca2e2a.png

查看user表格数据:

select 

5e0bb06251c4292ceeae6a7ff87fbe39.png

事务回滚:即撤销sql语句执行效果。

rollback

49405c865ba88e4c7de6013ac7c6f099.png

显示无法回滚。

3.关闭mysql事务自动提交。设置mysql自动提交为false,即autocommit = 0。

set 

开启回滚状态。

插入user表格中 b 数据:

insert 

1e63bf60547c3264577091b4dfbc1b9f.png

查看user表格数据:

select * from user;

7f4cb782f1328128d935d7dd4890b666.png

事务回滚:

rollback

cde3e8f8f1816267eb2f48c11dce46f6.png

插入user表格中 b 数据消失,事务成功回滚。

再次插入user表格中 b 数据:

insert 

2ecc52cb4d60a358aefa4ebac4fbedc5.png

4.手动提交事务:

commit

4bad37d7308d35c5e79885b38b8c3128.png

事务回滚:

rollback

26b0e2da7155b506052ca330278ff116.png

事务回滚失败,是无法撤销的。(持久性)

总结:

1.事务自动提交:

@@

提交后,事务无法回滚,无法撤销上一步操作。

2.手动提交:

commit

提交后,无法回滚撤销。

3.事务回滚:

rollback

开始的转账语句:

update 

84646467a510c417fa80c7c778f6e5c5.png

查看user表格中数据:

select 

38be7c2f401266de2bcbbba31bd34b1d.png

事务回滚成功:

rollback

b36806be3fa19f6daeb7c997c64fa236.png

事务提供了一个返回、撤销的机会。

保证一组数据要么全部执行,要么全部都不执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值