MySQL事务机制


事务的ACID属性

 原子性,一致性,隔离性,持久性

 事务的原子性:

  一个事务中所有的操作要么全部完成,要么全部失败。事务执行后,不允许停留在中间某个状态

 事务的一致性:

  不管在任何给定的时间、并发事务有多少,事务必须保证运行结果的一致性。

 事务的隔离性:

  隔离性要求事务不受其他并发事务的影响,如同在给定的时间内,该事务是数据库唯一运行的事物。

 事务的持久性:

  事务一旦提交,结果便是永久性的。即便发生宕机,仍然可以依靠事务日志完成数据的持久化。

#启动事务
start transaction;
delete from t_emp; delete from t_dept; select * from t_emp; select * from t_dept;
#提交事务
commit; #回滚事务 rollback;

事务的四个隔离级别

事务一

start transaction;
update t_emp set sal=1;

事务二

set session transaction isolation level read uncommitted;
start transaction;
select empno,ename,sal from t_emp;
commit;

事务二能够读取到事务一未提交的数据