什么是事务
指作为单个逻辑工作单位执行的一系列操作(主要是DML操作),要么完全地执行,要么完全地不执行。
举个例子:进行一次银行的转账,整个一系列动作的完成。
事务的特性
- 原子性
事务的操作要么都不做,要么全做。 - 一致性
一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成一个成功事务时,数据应该处于一致的状态 - 隔离性
一个事务和另一个事务之间不会相互影响 - 持久性
事务提交之后,数据库中的数据就会变成永久性的
使用事务
- 事务提交 commit
当我们执行一个DML语言后,此时数据并不会持久化到数据文件中,需要使用commit来确认提交 - 事务回滚 rollback
rollback,当我们执行一个DML语言后,也可以使用rollback来撤销当前对表的操作。 rollback操作需要在commit之前进行,否则无效 - 设置回滚点 savepoint
通过 rollback to 到达相应回滚点