zoukankan      html  css  js  c++  java
  • sql中事物

    :事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
    (2):事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
    COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。
    ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。
    (3):事务运行的三种模式:
    A:自动提交事务
    每条单独的语句都是一个事务。每个语句后都隐含一个COMMIT。
    B:显式事务
    以BEGIN TRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。
    C:隐性事务
    在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK显式结束。
    (4):事务的特性(ACID特性)
    A:原子性(Atomicity)
    事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
    B:一致性(Consistency)
    事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
    C:隔离性(Isolation)
    一个事务的执行不能被其他事务干扰。
    D:持续性/永久性(Durability)
    一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
    注:事务是恢复和并发控制的基本单位。

    打个比方  :

    如果我们要修改表中的某条记录,可以用以下方法:
    首先删除原记录,然后插入修改后的新记录
    这个过程中有2步
    如果出现记录删除成功,但插入的时候因为某种原因导致失败的话,就会出现数据丢失。
    这个时候,就可以用事物来处理
    把删除和插入当成是一件事,必须是2步都成功,数据才发生改变。
    否则若是出现删除成功,而插入失败的情况,希望将自动回滚,恢复为原始状态。
  • 相关阅读:
    P4932 浏览器 题解
    P1627 [CQOI2009]中位数 题解
    P4626 一道水题 II 题解
    P1439 【模板】最长公共子序列 题解
    P2324 [SCOI2005]骑士精神 题解
    P1784 数独 题解
    浅谈 Dancing Links X 算法
    P5905 【模板】Johnson 全源最短路 题解
    线性预处理阶乘,逆元和组合数
    需要支持多种操作的线段树该如何确定运算顺序?
  • 原文地址:https://www.cnblogs.com/MJK-ONG/p/6115060.html
Copyright © 2011-2022 走看看