#TCL事物控制语言 :

/*

  Transaction control language : 事物控制语言

  事务:

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

    事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的;

  处理事务的关键字:

    建立事务:

        SET autocommit=0;

        START TRANSACTION;

    结束事务:

        commit;

        #rollback; #回滚

    设置断点:

        SAVEPOINT a; #设置一个回滚点

        ROLLBACK TO a; #回滚到保存点a    

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

事务的隔离级别中出现的异常:

    脏读: 对于两个事务 T1, T2, T1 读取了已经被 T2 更新但还没有被提交的字段.

        之后, 若 T2 回滚, T1读取的内容就是临时且无效的. 

    不可重复读: 对于两个事务T1, T2, T1 读取了一个字段, 然后 T2 更新了该字段.

        之后, T1再次读取同一个字段, 值就不同了. 

    幻读: 对于两个事务T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中插 入了一些新的行.

        之后, 如果 T1 再次读取同一个表, 就会多出几行.

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

           (回滚无效)脏读    幻读   不可重复读

   read uncommited :  √        √         √

   read commited   :   ×       √         √

   repeatable read :   ×        x        √

   serializable    :   x        x         x

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

       Oracle 支持的 2 种事务隔离级别:READ COMMITED, SERIALIZABLE。

       Oracle 默认的事务隔离级别为: READ COMMITED 

       Mysql 支持 4 种事务隔离级别. Mysql 默认的事务隔离级别 为: REPEATABLE READ ;

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

   查看隔离级别:  (未能实现,找不到该命令!!)

    select @@tx_isolation;

   设置隔离级别:

    set session/global(全库) transaction isolation level 隔离级别;

*/

    #1、通过show engines;来查看mysql支持的存储引擎。

SHOW ENGINES;  #Engine    Support      Comment                                              Transactions    XA    Savepoints

           #InnoDB    DEFAULT      Supports transactions, row-level locking, and foreign keys    YES    YES    YES

#2/演示事务的使用步骤:转账

    #(1)建立表

CREATE DATABASE test;

DROP TABLE IF EXISTS account;

CREATE TABLE account(

    id INT PRIMARY KEY AUTO_INCREMENT,

    username VARCHAR(20),

    balance DOUBLE

);

INSERT INTO account(username,balance)

VALUES('张无忌',1000),('赵敏',1000);

    #(2)开启事务,编写一组事务的语句,结束事务COMMIT(提交)

SET autocommit=0;

START TRANSACTION;

UPDATE    account SET balance =500 WHERE username='张无忌';

UPDATE    account SET balance =1500 WHERE username='赵敏';

COMMIT;

SELECT * FROM account;

#---------------------------------

    #: 或者使用#rollback 进行回滚,滚回更新前的结果

SET autocommit=0;

START TRANSACTION;

UPDATE    account SET balance =1000 WHERE username='张无忌';

UPDATE    account SET balance =1000 WHERE username='赵敏';

ROLLBACK;

SELECT * FROM account;

    #命令行下设置事务最低的隔离级别 : read uncommitted

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

# 结果:   Query OK, 0 rows affected (0.00 sec)

#---------------------------

    #2.演示事务对delete 和 truncate 的处理的区别

SET autocommit=0;

START TRANSACTION;

DELETE FROM account;

#truncate from account; # 事务不支持这种删除!

ROLLBACK;

SELECT * FROM account;    

INSERT INTO account VALUES(25,'qwq',111),(26,'aaa',222);    

    #3:演示savapoint(保存点) 的使用

SET autocommit=0;

START TRANSACTION;

DELETE FROM account WHERE id=25;

SAVEPOINT a; #设置一个回滚点

DELETE FROM account WHERE id=25;    

ROLLBACK TO a; #回滚到保存点a    

SELECT * FROM account;

MySQL --- 19♪ 进阶15 TCL事务控制语言--建立结束事务/设置断点--默认隔离级别--脏读/幻读/不可重复读相关推荐

  1. mysql 中的脏读与幻读_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  2. mysql 可重复读 悲观锁_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  3. mysql悲观锁会有脏数据吗_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  4. 事务隔离级别脏读幻读_脏读和未提交读隔离级别

    事务隔离级别脏读幻读 In this article, we will discuss the Dirty Read concurrency issue and also learn the deta ...

  5. 数据库几个事务相关的知识点(脏读幻读不可重复读以及如何避免)

    0. 设置MYSQL的隔离界别 # 查询数据库当前事务隔离级别 mysql> select @@global.transaction_isolation,@@transaction_isolat ...

  6. 事务的4种隔离级别,3大问题,脏读幻读不可重复读

    一.数据库事务隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted .Read committed .Repeatable read .Serializable ,这四 ...

  7. MySQL数据库中,在读已提交和可重复读这两个不同事务隔离级别下幻读的区别

    目 录 1. 前 言 1.1 并发事务存在的问题 1.2 事务的隔离级别 1.3 快照读和当前读 2. 不同事务隔离级别下幻读的区别 2.1 读已提交下的幻读 2.2 可重复读下的幻读 2.2.1 情 ...

  8. mysql数据库的事务 acid 隔离级别 脏读 脏写 幻读 不可重复读

    事务的四大特征 原子性(atomicity):要么全部提交(commit),要么全部回滚(rollback) 一致性(consistency):数据从一个合法状态转换成另一种合法状态 隔离性(isol ...

  9. mysql数据库事务隔离级别的查看、设置、以及隔离级别有效范围的设置

    0.准备 事务隔离级别如下: Read-Uncommitted Read-Committed Repeatable-Read Seriaizable 在xhsell开启三个会话( 注意:这里的xshe ...

最新文章

  1. php smarty继承,PHP Smarty 模板 模板继承 {extends}
  2. EOS账户和钱包综合指南
  3. Seata阿里分布式事务中间件(一):Seata的基本介绍
  4. Multisim14仿真入门笔记
  5. 如何在Jetty中使用SPDY
  6. ECCV18 Oral | CornerNet目标检测开启预测“边界框”到预测“点对”的新思路
  7. 双显卡只用独显好吗_双动力洗衣机好吗
  8. easyui panel异步获取后台数据在前台显示
  9. BZOJ 2555: SubString [后缀自动机 LCT]
  10. php抽奖实现-概率算法
  11. 无源滤波器设计与选型
  12. 5G NR MIB详解
  13. mysql导入oracle dmp文件_Oracle:记一次导入dmp文件
  14. 山东标梵讲解APP开发与技术公司之间的联系
  15. 国产处理器兆芯可运行Windows,已试制出Intel i5级处理器
  16. 【PyTorch】如何取得预训练模型的标签label列表(以 Alexnet 在 ImageNet 上的预训练模型为例)
  17. 数据结构(从概念到C++实现)
  18. 大法师(简单题总结)
  19. 迈动互联中标中建集团
  20. C++: double类型数值比较

热门文章

  1. 什么是跨站脚本 (XSS)?
  2. JAVA计算机毕业设计新锐台球厅管理系统计算机(附源码、数据库)
  3. SYNTHIA-RAND-CITYSCAPES数据集云盘下载
  4. 用python跳转网站
  5. AE 激光剑 LaserSword
  6. 饿了么拿什么留住年轻人?
  7. linux服务器 xwindow,linux服务之X windows
  8. CHROME调试详解(转载)
  9. 2013年手机处理器终极指南(下)
  10. 数字图像处理 图象压缩