数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。---【来自百度百科】
事务的四大特性:
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
- 原子性(atomicity)
一个事务是一个不可分割的工作单位,对于其数据修改,要么全都执行,要么全都不执行。
- 一致性(consistency)
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。一致性与原子性是密切相关的。
- 隔离性(isolation)
一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(durability)
持久性也称永久性(permanence),事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
事务-保存点(Savepoint)
用于回滚时,如果想要撤回刚刚的操作,可以在这些操作之前设置一个保存点,在需要撤回时使用rollback进行回滚。
语法:
savepoint 保存点名称
事务-回滚(rollback)
事务回滚是指将该事务已经完成的对数据库的更新操作撤销。
语法:
rollback to 保存点名称--撤销单个事务
rollback 不加保存点名称则撤销所有存在的事物
事务-提交(commit)
事务的提交指的是把你刚刚操作的数据真正的写入到数据库中,这个时候 你就不能在运用rollback进行撤销你刚才的操作了。
数据库一旦commit了数据,那么就会撤销所有的保存点。所以,这时rollback会得到一个错误。当使用commit语句结束事务之后,其他会话将可以查看到事务变化后的新数据。