• 第六章——事务


    第六章——事务

    6.1 数据库特点

    要么都成功,要么都失败!!

    将一组SQL放在一个批次中去执行~

    事务原则:ACID原则        原子性、一致性、隔离性、持久性

    原子性(Atomicity)

    要么都成功,要么都失败。

    原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

    这里写图片描述

    一致性(Consistency)
    事务前后数据的完整性必须保持一致。

    这里写图片描述

    持久性(Durability)

    持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

    事务一旦提交就不可逆,被持久化到数据库中。

    表示事务结束后的数据不随着外界原因导致数据丢失

    操作前A:800,B:200
    操作后A:600,B:400
    如果在操作前(事务还没有提交)服务器宕机或者断电,那么重启数据库以后,数据状态应该为
    A:800,B:200
    如果在操作后(事务已经提交)服务器宕机或者断电,那么重启数据库以后,数据状态应该为
    A:600,B:400

    隔离性(Isolation)

    事物之间互不干扰。

    事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。

    这里写图片描述

     6.2 隔离所导致的一些问题

    • 脏读(读了未提交的)
    • 不可重复读(读完数据改了)
    • 幻读(读完之后数据删除或者新增了)

    6.3 事务提交

    1. --mysql是默认开启事务自动提交的
    2. set autocommit = 0 --关闭事务自动提交
    3. set autocommit = 1 --开启事务自动提交
    4. --手动处理事务
    5. set autocommit = 0 --关闭事务自动提交
    6. start transaction --标记一个事务的开始
    7. ....
    8. ....
    9. commit --提交事务,持久化
    10. rollback --回滚,回到原来的样子,失败!
    11. set autocommit = 1 --开启事务自动提交
    12. savepoint --设置一个事务的保存点
    13. rollback to savepoint --回滚到保存点
    14. release savepoint --撤销保存点

    模拟转账

     

  • 相关阅读:
    hadoop的yarn部署
    【Gradle自动化构建编程框架】一、介绍
    OpenCV显示中文(python)
    自动推送消息时附带图片的一种实现方式
    Vue3+Vite搭建项目
    菜品识别易语言代码
    [AIX] IBM机器卸载java
    企业快速开发平台Spring Cloud+Spring Boot+Mybatis+ElementUI 之浅谈代码语言的魅力
    微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发
    TDengine 3.3.0.0 引入图形化管理工具、复合主键等 13 项关键更新
  • 原文地址:https://blog.csdn.net/weixin_44564247/article/details/126699401