
事务是程序中一系列严密的操作,所有的操作必须完成,否则在所有的操作中所做的所有的更改都会被撤销。也就是事务的原子性,一个事务中的一系列的操作要么全部成功,要么就是失败。
事务的结束有两种,当事务中所有的步骤全部成功执行的时候,事务提交。如果其中一个步骤失败,将会发生回滚操作,撤销到事务开始之前的所有的操作。
事务具有四个特征

show variables like '%isolation%'
set session transaction isolation level Read Uncommitted;
Read UncommittedRead Uncommitted 即:读取未提交set session transaction isolation level Read Uncommitted;


start tracsaction;
select * from test;
start transaction;
select * from test;
update test set num =10 where id = 1;B没有提交事务

rollback;
select * from test;
select * from test;
Read Committed;set session transaction isolaction level Read Committed;


start transaction;
select *from test;
start transaction;
select * from test;
update test set num =10 where id=1
select * from test;
commit;
select * from test;
Read Committed 读已提交的隔离级别解决了脏读的问题,但是出现了不可重复读的问题,即事务A在两次查询的结果不一致,因为在两次查询之间事务B更新了一条数据。set session transaction isolation level repeatable read;
start transaction;
select * from test;
start transaction;
select * from test;
update test set num=10 where id=1;
select * from test;

commit;
select * from test;此时A查询的记录仍然和之前一样
inset into test(num) value(4);
select * from test;

Repeatable Read隔离级别只允许读取已经提交的事务的记录,




serializable完全锁定字段,若一个事务来操作同一份数据,那么就必须等待,直到前一个事务完成并解除锁为止。是完整的隔离级别,会锁住对应的数据表,因为会导致效率问题。来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3151247/ ,如需转载,请注明出处,否则将追究法律责任。