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 明确地释放保留点


  • 相关阅读:
    简单递归后台代码
    Request.QueryString与Request的区别
    在ASP.NET中实现图片、视频文件上传方式
    git之二
    ORACLE 下查看用户session 及 kill 用户session
    oracle 存储过程、函数和包的权限
    查看Linux操作系统版本命令
    Oracle创建Database link方法
    Oracle修改统计信息收集计划时间
    Oracle 不停库清理监听日志
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7997937.html
Copyright © 2011-2022 走看看