zoukankan      html  css  js  c++  java
  • 《MySQL必知必会》[07] 管理事务处理


    1、管理事务处理

    一个或多个数据库操作(查询/更新等)组成“事务”,也就是说,事务实际上是一组按顺序执行的操作单位:
    • 原子性:整个事务为整体执行,要么执行,要么不执行,不能出现执行了一半的情况
    • 一致性:条件约束,如航班数据库,则“一个座位不能分配给两名不同的顾客”就是一种适当的一致性条件
    • 隔离性:两个或更多事务并发执行时,作用效果必须相互独立,不能相互影响
    • 持久性:事务一旦完成,即便系统出现故障,也要保证事务的结果不能丢失

    事务的开始用 START TRANSACTION,提交用 COMMIT,遇到故障要回滚使用 ROLLBACK
    (当COMMIT或ROLLBACK语句执行后,事务会自动关闭)

    e.g.
    SELECT * FROM ordertotals; 
    START TRANSACTION;
    DELETE FROM ordertotals;
    SELECT * FROM ordertotals;
    ROLLBACK;
    SELECT * FROM ordertotals;

    上例先查询ordertotals以显示该表不为空,然后开启事务,删除所有行,再查询确实该表现在为空,然后回滚,最后的查询显示该表不为空。

    对于ROLLBACK回滚来讲:
    • 只能在一个事务处理内使用
    • 管理INSERT、UPDATE、DELETE,不能回退CREATE或DROP操作

    默认的MySQL行为是自动提交所有更改,也就是说,任何时候执行MySQL语句,实际上都是立即生效。可以设置不自动提交更改,手动COMMIT
    • SET autocommit=0;

    最后,简单提一下,复杂的事务处理可能需要部分提交或回滚,所以
    • 在事务处理中的合适位置是可以设置保留点的 e.g. SAVEPOINT pointFlagName;
    • 回滚时给出保留点即可 e.g. ROLLBACK TO pointFlagName;
    • 保留点在事务处理完成会自动释放,也可以使用 RELEASE SAVEPOINT 明确地释放保留点


  • 相关阅读:
    android29
    android28
    android27
    android26
    Dynamics CRM2011 MspInstallAction failed when installing an Update Rollup
    Dynamics CRM Import Solution Attribute Display Name description is null or empty
    The service cannot be activated because it does not support ASP.NET compatibility
    IIS部署WCF报 无法读取配置节“protocolMapping”,因为它缺少节声明
    Unable to access the IIS metabase.You do not have sufficient privilege
    LM算法与非线性最小二乘问题
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7997937.html
Copyright © 2011-2022 走看看