zoukankan      html  css  js  c++  java
  • MySQL的事务

    推荐一本书:《MySQL技术内幕:InnoDB存储引擎》

    关于事务的概念和四个特性,看这篇教程吧:http://www.runoob.com/mysql/mysql-transaction.html


     上面给出的链接中关于事务的实际使用说的不够清楚,下面开始详细说明:

    一、开启事务处理的办法(两种)

    1.临时显示地开启一次事务,commit(提交)或者rollback(回滚)后事务结束

    setcuto

    begin;    # 开启事务 ,也可以用 start transaction;来开启事务,它和begin是等价的

    rollback;  #  回滚,同义:rollback work;

    commit;   #  提交,同义:commit work;

    插句话:博客园平台的代码框是真的不好看,格式有时候会乱,表格也是如此,因此今后的代码都直接在文章里写,并将代码的颜色设置为蓝色。

    2.开启MySQL的事务模式,今后的每一次操作都是事务,也就说commit或者rollback之后,MySQL又自动开启了下一个事务

    set autocommit = 0;  # 禁止自动提交,开启事务模式

    set autocommit = 1;  # 开启自动提交,关闭事务模式

    在执行SQL语句之后,再查询表,发现表中的数据已经更新成功了,但实际上数据库中的数据并没有真正地改变。只有commit后数据库中的数据才会真的改变。

    更新:事务提交之前,数据保存在内存中,提交后保存在磁盘。

    3.为事务添加保存点,保存点也就是一个状态

    savepoint  one;  # 设置名称叫one的保存点

    release savapoint one;   #  删除名字叫one的保存点

    rollback to one;  # 回到名字叫one的保存点,注意回滚到某个保存点后当前事务并没有结束 

    4.还有一个非常重要的语句:set transaction  # 设置隔离级别,这一部分等学完锁再回来补充。

    实例1:开启事务-查询表(name=tom)-更新表(set name=hey)-查询表(name=hey)-回滚-查询表(name=tom)

    实例2:开启事务-设置初始状态为保存点-插入数据-设置插入后的状态为一个保存点-回滚到第一个保存点

  • 相关阅读:
    01 HTTP协议_servlet基础
    JS 08表单操作_表单域
    09 多态
    JS 07 Dom
    JS 06 bom 框窗_页面_定时任务
    JS 05 json
    08 包_继承
    JS 04 Date_Math_String_Object
    【Java每日一题】20161018
    【Java每日一题】20161017
  • 原文地址:https://www.cnblogs.com/2sheep2simple/p/10745256.html
Copyright © 2011-2022 走看看