• 读书笔记--SQL必知必会20--管理事务处理


    20.1 事务处理

    使用事务处理(transaction processing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性。

    • 如果没有错误发生,整组语句提交给数据库表
    • 如果发生错误,则进行回退(撤销),将数据库恢复到某个已知且安全的状态

    事务(transaction):一组SQL语句
    回退(rollback):撤销指定SQL语句的过程
    提交(commit):将未存储的SQL语句结果写入数据库表
    保留点(savepoint):事务处理中设置的临时占位符(placeholder),可以对它发布回退

    事务处理用来管理INSERT/UPDATE/DELETE语句,不能回退CREATE或DROP操作。

    20.2 控制事务处理

    不同的DBMS对实现事务处理的语法不同。
    管理事务的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退。

    20.2.1 使用ROLLBACK

    SQL的ROLLBACK命令用来回退(撤销)SQL语句。
    在事务处理块中,DELETE操作(与INSERT和UPDATE操作一样)并不是最终的结果。

    20.2.2 使用COMMIT

    隐式提交(implicit commit),即提交(写或保存)操作是自动进行的。
    一般的SQL语句都是隐式提交,针对数据库表直接执行和编写的。

    在事务处理块中,可以根据DBMS的设置,选择是否进行隐式提交。

    使用COMMIT语句,进行明确的提交。

    20.2.3 使用保留点

    在事务处理块中的合适位置放置占位符,可以支持回退部分事务。如果需要回退,可以回退到某个占位符。
    在SQL中,这些占位符称为保留点。

    在SQL代码中可以设置任意多的保留点,但每个保留点的名称必须唯一。

    根据实际需要设置,以便能够灵活地进行回退。

  • 相关阅读:
    LVGL初步移植
    为什么javac后加.java,java后不加.class?
    为什么内部类可以访问外部类的私有属性?
    Optional类与使用==判断null有什么区别?使用Optional类有什么优势?
    注释中的Unicode编码也会被转义
    用反射编写泛型数组
    JDBC与JPA--初学JPA
    抽象类与接口
    面向对象——多态
    面向对象——封装(隐藏)
  • 原文地址:https://www.cnblogs.com/anliven/p/6240381.html
Copyright © 2020-2023  润新知