5、数据库事务
1、什么是事务?
2、事务的四大特性
3、事务的三种运行模式
4、事务的保存点
5、事务的隔离机制
1、什么是事务?
1、事务的概念
事务(Transaction),顾名思义就是要做的或所做的事情,数据库事务指的则是作为单个逻辑工作单元执行的一系列操作(SQL语句)。这些操作要么全部执行,要么全部不执行。
2、为什么需要事务
1、为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
2、事务的四大特性
1、原子性
事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
2、一致性
事务应确保数据库的状态从一个一致状态转变为另一个一致状态,例如转账行为中,一个人减了50元,另外一个人就应该加上这50元,而不能是40元。
其他一致状态的含义是数据库中的数据应满足完整性约束,例如字段约束不能为负数,事务执行完毕后的该字段也同样不是负数
3、隔离性
多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4、持久性
一个事务一旦提交,他对数据库的修改应该永久保存在数据库中。
3、事务的三种运行模式
1. 自动提交事务(隐式开启、隐式提交)
2. 显式事务(显式开启、显式提交)
3. 显式事务(显式开启、显式提交)
# 手动开启的事务里默认不会自动提交,所以我们可以将要执行的sql语句放在我们自己手动开启的事务里
start transaction;
update test.t1 set id=33 where name = "jack";
commit;
# 注意
这种方式在当你使用commit或者rollback后,事务就结束了
再次进入事务状态需要再次start transaction
4、事务的保存点
savepoint和虚拟机中的快照类似,用于事务中,没设置一个savepoint就是一个保存点
当事务结束时会自动删除定义的所有保存点,在事务没有结束前可以回退到任意保存点
1、设置保存点savepoint 保存点名字
2、回滚到某个保存点,该保存点之后的操作无效,rollback 某个保存点名
3、取消全部事务,删除所有保存点rollback
# 注意:rollback和commit都会结束掉事务,这之后无法再回退到某个保存点
5、事务的隔离机制/font>