码迷,mamicode.com
首页 > 数据库 > 详细

MySQL : 事务处理

时间:2017-05-31 13:57:06      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:http   ima   ack   选择   int   family   需要   innodb   存在   

【事务】一组SQL语句操作单元,组内所有SQL语句,完成一个业务

             若整组成功,意味着组内的全部操作都成功;

             反之,若其中任何一条语句失败,意味着整个操作都失败。

             操作失败,意味着整个过程都是没有意义的,应使数据库回到操作前的初始状态。

【point】1. 失败后,能回到开始位置;

         2. 成功之前,其他用户(进程、规划)不能看到操作内的修改。

【思路】在一组操作之前,设计一个记号(备份点)。

【实现】利用 innodb 存储引擎的“事务日志”功能。

             执行分为2个阶段:

        1. 执行阶段;

        2. 将执行结果提交给数据库的阶段;

             其中,事务日志便是将执行阶段的结果保存,若用户选择提交,才将执行结果提交给数据库。

            (默认的执行方式:自动提交)

             需要关闭自动提交功能(存在一个系统变量,autocommit 可以对自动提交进行配置)

 

1 set autocommit = 0 ;  // 0 意味着关闭自动提交功能;1 意味着开启

 

   技术分享

若成功,执行 commit 提交结果;

若失败,执行 rollback ,回到起始位置。

--------------------------------------------------------------------------

常用的事务指令

1. start transaction 开启事务(作用:关闭自动提交)。

    特点:若事务结束了,无论成败,都会提交机制,回到start时的状态(原来是autocommit,就会回到autocommit状态)

2. commit

3. rollback

小练习

1. 指令 

2. 为什么会有事务?

    自动提交、事务日志。

3. 事务的特点?(ACID)

    1) 原子性:对于外界而言,事务中的SQL语句是一个整体;

    2) 一致性:在事务执行过程中,数据不受其他操作的影响;

    3) 隔离性:事务之间不会相互影响。

    4) 持久性:事务一旦提交,意味着对数据库产生了影响,不可以再回退。

MySQL : 事务处理

标签:http   ima   ack   选择   int   family   需要   innodb   存在   

原文地址:http://www.cnblogs.com/zhqiang/p/6923266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!