事务:就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所欲SQL都精被取消执行。
特点:一个事务中如果有一个数据库操作失败,那麽整个事务的所有数据库操作都会失败,数据库就会回滚到该事务开始之前的状态。
限制:MySQL数据库中仅InnoDB和BDB类型的数据库表支持事务。
四大原则:
原子性:意味着数据库中的事务执行是作为原子粒度。即不可再分,整个语句要么执行,要么不执行。
一致性:即事务开始之前和结束以后数据库的完整性约束没有被破坏。
隔离性:互不干扰,即一个事务不可能看到其他事务运行时,中间某一时刻的数据。
(事务隔离级别)
持久性:事务完成以后,该事务对数据库所作更改便持久的保存在数据库中,并不会被回滚。
提交:commit
回滚:rollback
脏读:读未提交的数据
幻读:当用户读取莫一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再次读取该范围的数据行时,会发现有新的“幻影”行
不可重复读:在一个事务中两次查询数据不一致,这可能时两次查询过程中间插入了一个事务更新的原有的数据。