1. 什么是事务
指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。简单的说,事务就是并发控制的单位,是用户定义的一个操作序列。
2. 事务的四大特性(简称ACID)
①原子性(atomicity)
⼀个事务必须被视为⼀个不可分割的最⼩⼯作单元,整个事务中的所有
操作要么全部提交成功,要么全部失败回滚,对于⼀个事务来说,不可
能只执⾏其中的⼀部分操作,这就是事务的原⼦性
②⼀致性(consistency)
数据库总是从⼀个⼀致性的状态转换到另⼀个⼀致性的状态。
③隔离性(isolation)
通常来说,⼀个事务所做的修改在最终提交以前,对其他事务是不可⻅
的。
④持久性(durability)
⼀旦事务提交,则其所做的修改会永久保存到数据库。
3.事务命令
开启事务,命令如下:
begin;或者start transactio
提交事务,命令如下:
commit;
回滚事务,命令如下:
rollback;
注意
- 修改数据的命令会⾃动的触发事务,包括insert、update、delete
- ⽽在SQL语句中有⼿动开启事务的原因是:可以进⾏多次数据的修改,如果成功⼀起成功,否则⼀起会滚到之前的数据。
例子:
第一:先在终端中MySQL下开启事务
begin;
第二:在此输入MySQL语句(一般是修改数据命令,在此我就用添加新的数据为例)
insert into 表名 values(0,数据,);
第三:提交数据(如果你此处没有提交那么你的表中不会有新的数据)或回滚数据(当你回滚数据的时候,你之前mysql命令就不执行了)
commit; 或 rollback;