Mysql之事务

1、关于事务的一些知识点

一组sql语句操作单元,组内所有sql语句完成一个业务。如果整组成功,意味着全部sql都实现。如果其中任何一个失败。意味着整个操作都失败。失败,意味着整个过程都是没有意义的。应该是数据库回到操作前的初始状态。

上面的特性,就是事务。

如何处理?

1)、失败后,可以回到开始位置

2)、没有成功之前,别的用户(进程,会话)是不能看到操作内的数据修改的。

思路:就是在一组操作之前,设计一个记号,备份点。

每当执行一个语句时,会把语句保存在一个事件日志中。如果成功,则会将结果提交到数据库内,意味着更改了数据库内容。

也就是说SQL的执行被分成了两个阶段:1)、执行阶段   2)、将执行结果,提交的数据库的阶段

其中我们的事务日志,就是保存执行阶段的结果,如果用于选择提交,才将执行结果提交到数据库。而默认的执行方式(我们普通的SQL语句)叫,自动提交,执行完毕,自动完成提交工作。因此必须关闭自动提交功能。那么如何关闭自动提交:

当设置 set autocommit=0;时,其实再update是是没有更新到数据库的。1)当update完后发现错误后(此时还没提交),可以执行rollback回滚;2)当update完后没有发现错误,可执行commit进行提交。

注:set autocommit=1;//自动提交,MySql默认是自动提交。


2、常见的事务的指令

开启事务:start transaction

关闭自动提交,如果事务结束了,成或败,都会将自动提交机制,回到start时的状态  成功:commit;  失败:rollback;

注:使用start transaction(可以使用begin来代替,但很少使用)开启事务而不使用set autocommit开启事务的原因:

使用start transaction开始事务,执行语句,commit提交后还会回到mysql还hiui回到初始的状态,不会影响到其他用户使用。

限定:事务在innodb下生效(DBD)


3、事务的特点(acid)

1)原子性

2)一致性

3)隔离性

4)持久性(此时已经在数据库改变了,不可以再rollback了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Henry_Jing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值