session A:  session B:   
         
mysql> show variables like '%iso%';mysql> show variables like '%iso%'; 
+---------------+-----------------++---------------+-----------------+ 
| Variable_name | Value           || Variable_name | Value           | 
+---------------+-----------------++---------------+-----------------+ 
| tx_isolation  | REPEATABLE-READ || tx_isolation  | REPEATABLE-READ | 
+---------------+-----------------++---------------+-----------------+ 
1 row in set (0.00 sec) 1 row in set (0.00 sec)  
         
mysql> begin;  mysql> begin;   
Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)
         
mysql> select * from user; mysql> select * from user;  
+----+--------+  +----+--------+   
| id | name   |  | id | name   |   
+----+--------+  +----+--------+   
|  1 | ligang |  |  1 | ligang |   
|  2 | lvbu   |  |  2 | lvbu   |   
|  3 | zhaoyu |  |  3 | zhaoyu |   
+----+--------+  +----+--------+   
3 rows in set (0.00 sec) 3 rows in set (0.00 sec)  
         
mysql> update user set name='ddd' where id=4;    
Query OK, 0 rows affected (0.00 sec)     
Rows matched: 0  Changed: 0  Warnings: 0    
(把存在ddd之外的记录全部加X锁)     
    mysql> insert into user values(4,'ddd');
    ERROR 1205 (HY000): Lock wait timeout exceeded; 
    try restarting transaction  
         
mysql> commit;       
Query OK, 0 rows affected (0.00 sec)     
         
    mysql> insert into user values(4,'ddd');
    Query OK, 1 row affected (0.00 sec) 
         
    mysql> select * from user;  
    +----+--------+   
    | id | name   |   
    +----+--------+   
    |  4 | ddd    |   
    |  1 | ligang |   
    |  2 | lvbu   |   
    |  3 | zhaoyu |   
    +----+--------+   
    4 rows in set (0.01 sec)  
         
mysql> begin;       
Query OK, 0 rows affected (0.00 sec)     
         
mysql> select * from user;      
+----+--------+       
| id | name   |       
+----+--------+       
|  1 | ligang |       
|  2 | lvbu   |       
|  3 | zhaoyu |       
+----+--------+       
3 rows in set (0.00 sec)      
         
    mysql> commit;   
    Query OK, 0 rows affected (0.00 sec)
         
mysql> select * from user;      
+----+--------+       
| id | name   |       
+----+--------+       
|  1 | ligang |       
|  2 | lvbu   |       
|  3 | zhaoyu |       
+----+--------+       
3 rows in set (0.00 sec)      
         
mysql> commit;       
Query OK, 0 rows affected (0.00 sec)     
         
mysql> select * from user;      
+----+--------+       
| id | name   |       
+----+--------+       
|  4 | ddd    |       
|  1 | ligang |       
|  2 | lvbu   |       
|  3 | zhaoyu |       
+----+--------+       
4 rows in set (0.00 sec)      

 

 

 

session A:  session B:   
         
mysql> show variables like '%iso%';mysql> show variables like '%iso%'; 
+---------------+----------------++---------------+----------------+ 
| Variable_name | Value          || Variable_name | Value          | 
+---------------+----------------++---------------+----------------+ 
| tx_isolation  | READ-COMMITTED || tx_isolation  | READ-COMMITTED | 
+---------------+----------------++---------------+----------------+ 
1 row in set (0.00 sec) 1 row in set (0.00 sec)  
         
mysql> begin;  mysql> begin;   
Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)
         
mysql> select * from user; mysql> select * from user;  
+----+--------+  +----+--------+   
| id | name   |  | id | name   |   
+----+--------+  +----+--------+   
|  4 | ddd    |  |  4 | ddd    |   
|  1 | ligang |  |  1 | ligang |   
|  2 | lvbu   |  |  2 | lvbu   |   
|  3 | zhaoyu |  |  3 | zhaoyu |   
+----+--------+  +----+--------+   
4 rows in set (0.02 sec) 4 rows in set (0.02 sec)  
         
mysql> update user set name='cvvt' where id=5;   
Query OK, 0 rows affected (0.01 sec)     
Rows matched: 0  Changed: 0  Warnings: 0    
         
    mysql> insert into user values (5,'cvvt');
    Query OK, 1 row affected (0.00 sec) 
         
    mysql> select * from user;  
    +----+--------+   
    | id | name   |   
    +----+--------+   
    |  5 | cvvt   |   
    |  4 | ddd    |   
    |  1 | ligang |   
    |  2 | lvbu   |   
    |  3 | zhaoyu |   
    +----+--------+   
    5 rows in set (0.00 sec)  
         
mysql>  select * from user;     
+----+--------+       
| id | name   |       
+----+--------+       
|  4 | ddd    |       
|  1 | ligang |       
|  2 | lvbu   |       
|  3 | zhaoyu |       
+----+--------+       
4 rows in set (0.00 sec)      
         
    mysql> commit;   
    Query OK, 0 rows affected (0.00 sec)
         
mysql>  select * from user;     
+----+--------+       
| id | name   |       
+----+--------+       
|  5 | cvvt   |       
|  4 | ddd    |       
|  1 | ligang |       
|  2 | lvbu   |       
|  3 | zhaoyu |       
+----+--------+       
5 rows in set (0.00 sec)