mysql之事务安全

事务安全

一、事务概念
在这里插入图片描述
二、事务基本原理
mysql允许将事务统一进行管理(存储引擎必须是INNODB),将用户所在的操作暂时保存起来,不直接放到数据表(更新),等到用户确认结果之后再进行操作。
在这里插入图片描述
事务在mysql中通常是自动提交的,但是也可以是手动操作
三、自动事务
自动事务:autocommit,当客户端发送一条sql指令(增删改)给服务器的时候,服务器在执行之后,不用等待用户反馈结果,会自动将结果同步到数据表。

证明:利用2个客户端。一个客户端执行sql指令,另一个客户端查看写操作结果
在这里插入图片描述
自动事务:系统做了额外的步骤来帮助用户操作,系统是通过变量autocommit来实现操作。
show variables like ‘autommit%’;

关闭自动事物:set autocommit =off;
在这里插入图片描述
一旦事务关闭,那么需要用户提供是否同步的命令
commit:提交(同步数据表,事物也会被清空)
rollback:回滚(清空之前的操作)

事务没有提交的对比查看(利用事物日志对事务进行加工)
在这里插入图片描述
在这里插入图片描述
注意:我们通常不会关闭自动事务

四、手动事物
概念:不管是开始还是结果都需要用户发送指令来操作
1、开启事务的命令:
start transaction; //从这条语句开始,后面的所有语句都将保持到事务日志中而不是直接写入数据表
在这里插入图片描述
2、事务处理:多个指令构成
(1)新增操作
在这里插入图片描述
在这里插入图片描述
3、事务提交:commit/rollback,到这个时候所有的事务才算是就结束了。
在这里插入图片描述
4、回滚点(savepoint)
当有一系列事务操作时,而其中的步骤如果成功了(没有必要从头再来),就可以在某个成功点,设置一个记号。如果后面失败了,就可以回到记号位置。
增加回滚点:savepoint 回滚点名字;//字母数字和下划线构成
回到回滚点:rollback to 回滚点名字//回滚点之后的操作被清楚了

注意可以设置多个回滚点,但是回到前面的回滚点,后面的回滚点也就失效了
五、事务特性
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44105778/article/details/86608159