1、原子性(Atomicity):操作不可分割,要么完成,要么不完成。
2、一致性(Consistency):数据一致性。如A转账给B,B增加的数额等于A减少的数额。
3、隔离性(Isolation):不同操作间互不影响。
4、持久性(Durability):记录需要持久化。如转账成功后,就能一直生效,而不是在没有其他操作的情况下,转账的操作结果失效。
事务是什么事务是一个或多个数据库操作集合。这个操作集合能保证原子性,隔离性,一致性和持久性。
数据库事务的错误情况1、脏读:一个事务读到另一个事务未提交的数据。
2、不可重复读:事务A在事务B修改或删除数据并提交前后,各读取了一次数据,两次读取到的数据是不一致的。
3、幻读:事务A在事务B新增数据并提交前后,各读取了一次数据,两次读取到的数据不一致。
事务隔离级别1、读未提交(Read Uncommitted):一个事务能读到另一个事务未提交的数据,导致脏读。
2、读已提交(Read Committed):一个事务只能读到另一个事务提交了的数据,有不可重复读和幻读的问题。
3、可重复读(Repeatabled Read):事务A先根据某些条件查询出了一些数据,之后另一个事务B又向表中修改了部分符合这些条件的记录并提交,事务A再次根据该条件查询时,读出的仍然是第一次查询出的数据。但仍然有幻读问题。
4、串行化(Serializable):事务不能并发操作,只允许串行操作,能防止脏读、不可重复读和幻读问题。
注意:这四种隔离级别是SQL的标准定义,在MYSQL实现中,MYSQL在"Repeatabled Read"隔离级别时,是可以禁止幻读问题的发生的。
MYSQL事务相关命令1、MYSQL开启事务命令:begin
2、MYSQL提交事务命令:commit
3、MYSQL回滚事务命令:rollback