• MySQL事务的介绍+事务的特性+事务的开启


    事务介绍:

    简单的说,事务就是指逻辑上的一组SQL语句操作,组成这组操作的各个SQL语句,要么全成功要么全失败。
      例如:A给B转账5元,流程是从A的账户扣除5元,把5元打入B的账户,B的账户上收到5元。
      SQL语句为:update account set money=money-5 where name='A'; update account set money=money+5 where name='B';
      上述的SQL语句操作,在事务中要么都执行,要么都不执行; 这是事务的原子性(Acomicity)

    事务的四大特性(ACID)
    1.原子性(Atomicity)
      事务是一个不可分割的单位,事务中的所有SQL等操作要么都发生,要么都不发生。
    2.一致性(Consistency)
      事务发生前和发生后,数据的完整性必须保持一致。
    3.隔离性(Isolation)
      当并发访问数据库时,一个正在执行的事务在执行完毕前,对于其他的回话是不可见的,多个并发事务之间的数据是相互隔离的。有个备份参数--single-transaction(innodb使用)
    4.持久性(Durability)
      一个事务一旦被提交,它对数据库中的数据改变时永久性的。如果出了错误,事务也不允许撤销,只能通过"补偿事务"。

    开启事务:
    数据库默认事务是自动提交的,发一条SQL执行一条。如果想多条SQL放在一个事务中执行,则需要使用事务进行处理。当开启一个事务,并且没有提交,mysql会自动回滚事务,或者使用rollback命令手动回滚事务。
    start transaction 开启事务
    rollback 回滚事务
    commit 提交事务
    mysql>set global autocommit=1; #开启自动提交
    mysql>set global autocommit=0; #禁止自动提交  如果不执行commit,退出后,之前执行的操作就丢失了。

    作者:Cherry_梅 出处:http://www.cnblogs.com/itqingtian/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    自己动手制作更好用的markdown编辑器-03
    自己动手制作更好用的markdown编辑器-02
    自己动手制作更好用的markdown编辑器-01
    使用hexo在github上搭建个人博客
    自己开发前端调试工具:Gungnir
    关于滚动更新的设计技巧
    看看Delphi中的列表(List)和泛型
    一个跟同事闲谈写出来的SQL脚本_算法循环_关系循环
    分享一个多线程实现[冒泡][选择][二分法]排序的例子
    八皇后回溯计算法研究
  • 原文地址:https://www.cnblogs.com/itqingtian/p/10276708.html
Copyright © 2020-2023  润新知