事务:用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。如:网上转账就是典型的要用事务来处理,用以保证数据的一致性。
- 事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
- 事务前后数据的完整性必须保持一致
- 多个用户并发访问数据库时,一个用户的事务不能被其它用户的事物所干扰,多个并发事务之间的数据要相互隔离。
- 一个事务一旦被提交,它对数据库中的数据改变就是永久性的
MySQL控制台的几个操作:
start transaction; 开始一个事务 (相当于set autocommit=0关闭自动提交。不同:如果事务结束了,成或败,都会将自动提交机制,回到start状态(初始状态)。
savepoint 保存点名 ;设置保存点;保存点是事务中的一点.用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点.
rollback to 保存点名; 取消部分事务
rollback; 失败:取消全部事务;通过指定保存点可以回退到指定的点,
commit; 成功: 提交事务.
判断是否都成功(出现错误,包括语法错误,和逻辑错误服务器错误)。
成:将结果提交,利用 commit
败:回到开始位置。Rollback
事务的实现:
- 要求事务支持的表类型
- 执行一组相关的操作前开启事务
- 整组操作完成后,都成功,则提交,如果存在失败,选择回滚,则会回到事务开始的备份点。