zoukankan      html  css  js  c++  java
  • 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/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    redis主从配置
    mysql被动模式下的主主配置
    centos7 重启网卡报错
    mysql innodb_data_file_path配置增加
    sql语句偶记录
    nginx 做前端代理时proxy参数配置
    firewalld实现网关功能
    mysql负载飙高原因分析
    nginx 直接返回状态码
    (转)Yale CAS + .net Client 实现 SSO(6)
  • 原文地址:https://www.cnblogs.com/itqingtian/p/10276708.html
Copyright © 2011-2022 走看看