MySQL ----- 事务
一:事务的概念
-
事务是一种机制,一个操作序列,包含了一组数据库操作命令,并把所有的命令作为一个整体一起向系统提交或撤销操作请求,这一组数据库命令要么都执行,要么都不执行;
-
事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元;
-
适用于多用户同时操作的数据库系统的场景
-
通过事务的整体性以保证数据的一致性
二:事务的ACID 特点
-
原子性 (Atomicity)
-
事务是一个完整的操作,事务的各元素是把不可分的(原子的)
-
事务种的所有元素必须作为一个整体提交或回滚
-
如果事务中的任何元素失败,则整个事务将失败
-
一致性 (Consistency)
-
当事务完成时,数据必须处于一致状态: 在事务开始之前,数据库中存储的数据储于一致状态; 当正在进行的事务中,数据可能处于不一致的状态; 当事务成功完成时,数据必须再次回到已知的一直状态 。
-
隔离性 (Isolation)
-
对数据进行修改的所有并发事务是彼此隔离的,说明事务是独立的,不依赖或影响其他事务
-
修改数据的事务可以在另一个使用相同数据的事务开始之前访问这些数据,或在另一个使用相同数据的事务结束之后访问数据
-
持久性 (Durability)
-
不管系统是否发生故障,事务处理的结果都是永久的
-
一旦事务被提交,事务的效果会被永久保留在数据库中
三:事务的操作
-
默认情况下MySQL 的事务是自动提交的,当sql 语句提交时事务便自动提交
-
手动对事务进行控制的方法
-
事务处理命令控制
-
使用set 设置事务处理方式
-
事务处理命令控制事务
-
begin :开始一个事务
-
commit :提交一个事务
-
rollback :回滚一个事务
做回滚,要想回到哪个节点,就回到那个存档
commit 表示提交,整个事务才算结束。 未提交之前数据是保存在缓存区,只有commit提交完成,数据才被写入硬盘中。
-
#### 使用set命令进行控制
-
set autocommit=0 禁止自动提交
-
set autocommit=1 开启自动提交