1、测试数据
create database transaction_test;
use transaction_test;
create table account(
id int primary key auto_increment,
name varchar(16),
balance int
);
insert into account(name,balance) values('张三',100),('李四',100);
insert into account(id,name,balance) values(3,'赵六',100);
2、四个特性
1、隔离性,事务之间是相互隔离的,不被其他事务影响。
事务的隔离问题
(1)脏读:读到未提交事务修改的数据。
(2)不可重复读:读到已提交事务修改的数据。
(3)幻读:读到已经提交的事务对表的插入操作。
事务的隔离级别
查看隔离级别 select @@transaction_isolation;
(1)读未提交,可以读到未提交事务的修改内容。
(2)读已提交,可以读到已提交事务的修改内容。
(3)可重复读,可以读到事务开始时已经提交事务的修改内容。
(4)串行化,事务之间串行执行。
2、 原子性,最小单位,操作要么全都完成,要么全都不完成。
3、 持久性,事务一旦提交,对数据的改变应该是永久性的,接下来的操作或者故障不应对此产生影响。
4.、一致性,事务只能从一个一致性状态转变为另一个一致性状态。