MySQL事物实战篇
前面一篇博客已经了解了事物的一些特征,这里先来看如下的一个执行流程:
1. 案例一
先创建表:
mysql> create table k (
-> id int primary key,
-> k int(11) not null)
-> engine = innodb;
Query OK, 0 rows affected (0.36 sec)
mysql> insert into k values((1,1),(2,2));![1569206186765](C:\Users\Laptop\AppData\Local\Temp\1569206186765.png)
执行上表的操作,这里先注意一下:
-
start transaction with consistent snapshot代表马上启动一个事物,begin/start transaction 命令并不是一个事物的起点,在执行到他们之后的第一个操作InnoDB表的语句,事物才真正启动;
两者的区别:- 第一种启动方式:一致性视图是在执行start transaction with consistent snapshot时创建的;
- 第二种启动方式:一致性视图是在执行第一个快照读语句时创建的;
- 即当事物一用第一种方式启动后,在事物二更新一行数据后,在事物一中查询的结果是没更新的那个结果,而假如事物一用第二种方式启动的,则在事物一未执行任何操作前,事物二更新数据后,再在事物一种执行查询语句会得到更新后的结果;
-
在C中没有显示的使用start来启动事物,但update t set k&#