zoukankan      html  css  js  c++  java
  • mysql 幻象读

    CREATE TABLE `t100` (
    `id` bigint(20) NOT NULL default '0',
    `value` varchar(32) default NULL,
    PRIMARY KEY (`id`)
    ) ;
    
    mysql>select @@global.tx_isolation, @@tx_isolation;
    +-----------------------+-----------------+
    | @@global.tx_isolation | @@tx_isolation  |
    +-----------------------+-----------------+
    | REPEATABLE-READ       | REPEATABLE-READ |
    +-----------------------+-----------------+
    
    试验4-1:
    
    SESSION A: 
    set autocommit=0;
    
    
    
    SESSION B:
    
    
    
    
    tSessionA                                                     Session B
    |
    set autocommit=0;                                         set autocommit=0;
    | START TRANSACTION;                                  START TRANSACTION;
    |
    | SELECT * FROM t100;
    | empty set
    |                                                   INSERT INTO t100 VALUES (1, 'a');
    |                              
    |
    | SELECT * FROM t100;
    | empty set
    |                                                                      COMMIT;
    |
    | SELECT * FROM t100;
    | empty set
    |
    | INSERT INTO t100 VALUES (1, 'a');
    | ERROR 1062 (23000):
    | Duplicate entry '1' for key 1
    v (shit,刚刚明明告诉我没有这条记录的)
    
    如此就出现了幻读,以为表里没有数据,其实数据已经存在了,傻乎乎的提交后,才发现数据冲突了。

  • 相关阅读:
    mysql 常用方法
    jquery input click取消默认事件
    Sprint Boot 集成mongodb
    MSSQL复习笔记
    H5(3)基础知识点补充
    H5(2) 前端基础知识点补充
    H5(1) h5的新特性
    用队列的方式实现日志
    Spring.Net的快速应用
    总结2016/展望2017
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351207.html
Copyright © 2011-2022 走看看