MySQL 数据库的事务数据库
咱们以前分享数据库的数据操做,无外乎对数据库的数据进行增、删、改、查。就好比咱们去买东西,通常都是先付钱,卖家收到钱再发货。这个用数据库来表示就是,第一步:从用户的帐户中减去一部分金额。第二步,再把减去的金额添加到商家的帐户上。微信
可是万一遇到特殊的状况,你成功的完成了第一步,从用户的数据库中扣除了钱,这时候忽然停电,系统出现了故障,没有完成第二步。这就尴尬了,用户的钱少了,商家也没收到钱。学习
为了应对这种状况的发生,数据库就出现了一个功能事务,事务就是一组由 SQL 语句组成的业务逻辑,当事务内的全部 SQL语句都成功的执行,整个事务才算成功,不然就是失败。失败意味着整个的数据操做没有意义,就要把数据恢复到执行事务操做以前的状态。事务
上面是关于事务的介绍,下面咱们用具体的代码演示一下:it
SQL语句在执行的过程当中分为二个阶段:io
1 : 执行SQL语句学习资料
2 : 将执行结果提交给数据库。im
如今咱们来演示一下:修改 id=3 的用户的手机号码,使之变成 123456数据
咱们看见这个修改操做已经完成了,咱们来看一下事务默认的执行方式。微信公众号
show variables like 'autocommit';
事务默认的执行方式:自动提交。SQL语句执行完毕后,自动提交事务。
事务的功能演示
先来建立两个表一个用户表一个订单表,写入两条数据。
查看一下表内的数据。
如今咱们来开启事务:start translation。
咱们打开一个窗口,做为一个新的用户,如今咱们看见,数据是没有变化的。也就是说,当一个事务没有完成的时候,用户只能看到事务完成前,或者完成后的状态。
如今咱们的操做完成,来提交事务。commit
数据库中的数据修改了,别的用户查看数据库的时候,也是修改后的数据。若是执行的过程当中发生错误呢?开启事务。再来修改一下数据。
如今出错了,事务进行回滚操做,rollback。
咱们看到了,数据库的数据恢复到没有修改以前的状态。这就是咱们今天要分享的 MySQL 数据库的事务了。
想要资料的小伙伴
能够关注微信公众号 Java联盟
回复“资料”
那里有娜娜已经准备好的
一份学习资料
拜拜~