zoukankan      html  css  js  c++  java
  • MySql的事务控制(TCL语言)

    ⒈事务

      一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。

    ⒉事务的特性(ACID)

      1.原子性(Atomicity):一个事务不可再分割,要么都执行要么都不执行。

      2.一致性(Consistency):一个事务执行会使数据从一个一致状态切换到另外一个一致状态。

      3.隔离性(Isolation):一个事务的执行不受其它事务的干扰。

      4.持久性(Durability):一个事务一旦提交,则会永久的改变数据库的数据。

    ⒊事务的创建

      1.隐式事务:事务没有明显的开启和结束的标记,例如insert、update和delete语句

      2.显式事务:事务具有明显的开启和结束的标记。前提,必须先设置自动提交功能为禁用。set autocommit = 0;

            显示当前事务状态 show variables like 'autocommit';

    ⒋事务过程

      ①开启事务

    1 set autocommit = 0;
    2 start transaction;    #可选

      ②编写事务中的sql语句(select、insert、update、delete)

    1 语句1;
    2 语句2;
    3 ....

      ③结束事务

    1 commit;    #提交事务
    2 rollback;    #回滚事务

    ⒌事务的隔离级别

    级别 脏读 不可重复读 幻读

    read uncommitted

    读未提交(数据)

    read committed

    读已提交(数据)

    repeatable read

    可重复读

    serializable

    串行化

          MySql中默认第三个隔离级别:repeatable read(可重复读)

          Oracle中默认第二个隔离级别:read committed(读已提交)

          查看隔离级别:select @@tx_isolation

          设置隔离级别:set session|global transaction isolation level

    ⒍SAVEPOINT回滚点

      在sql中设置

    1 语句1;
    2 savepoint a;    #设置回滚点
    3 语句2;
    4 rollback to a;    #回滚到指定的回滚点
  • 相关阅读:
    哈夫曼树
    顺序栈和链栈
    线性表(二) 单链表的增删改查及源码 (修改)
    线性表(二):单链表的增删改查及源码
    线性表(一):顺序表的增删改查及源码
    从头学数据结构--跟随浙大陈越姥姥的步伐
    Java学习笔记--scanner获取键盘输入
    关于方法、变量、类等命名规范
    Java学习笔记--类型自动转换、强制类型转换、溢出
    java学习笔记--重载
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10698620.html
Copyright © 2011-2022 走看看