事务
为保证业务的完整性,当一条语句出现错误,则此步骤全部回退
- 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行
- 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致
- 隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的
- 持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障
提交
- 默认隔离级别可重复读,若事务级别为读已提交,则终端二不commit的情况下可以读取到终端一的数据。
### 终端一
begin; 开启
insert into students (sname) value ("sss");
commit; 只有commit才表示执行成功
### 终端二
mysql> select * from students;
---- -------
| id | sname |
---- -------
| 1 | Gage |
| 2 | sss |
---- -------
回退
代码语言:javascript复制### 终端一
begin; 开启
insert into students (sname) value ("sss");
rollback; 人为异常,事务回退
insert into students (sname) value ("kksk"); 测试语句
### 终端二
mysql> select * from students;
---- -------
| id | sname |
---- -------
| 1 | Gage |
| 2 | sss |
| 4 | kksk |
---- -------
- 查看隔离级别
mysql> show variables like "%iso%";
----------------------- -----------------
| Variable_name | Value |
----------------------- -----------------
| transaction_isolation | REPEATABLE-READ |
----------------------- -----------------
1 row in set, 1 warning (0.01 sec)