博客园

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>

1、概念

事务具有原子性、一致性、隔离性、持久性四大特性,而隔离性顾名思义指的就是事务彼此之间隔离开,

多个事务在同时处理一个数据时彼此之间互相不影响,如如果隔离的不够好就有可能会产生脏读、不可重复度、幻读等读现象

posted @ 2021-03-04 17:35  小刘学python  阅读(167)  评论(0编辑  收藏  举报