49 lines
		
	
	
		
			999 B
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			999 B
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								# connection default
							 | 
						||
| 
								 | 
							
								SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								id SMALLINT NOT NULL,
							 | 
						||
| 
								 | 
							
								PRIMARY KEY (id)
							 | 
						||
| 
								 | 
							
								) ENGINE=innodb
							 | 
						||
| 
								 | 
							
								PARTITION BY RANGE (id)
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								PARTITION p1 VALUES LESS THAN (2),
							 | 
						||
| 
								 | 
							
								PARTITION p2 VALUES LESS THAN (4),
							 | 
						||
| 
								 | 
							
								PARTITION p3 VALUES LESS THAN (10)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (1),(2),(3);
							 | 
						||
| 
								 | 
							
								# Test READ COMMITTED -> REPEATABLE READ
							 | 
						||
| 
								 | 
							
								FLUSH TABLES;
							 | 
						||
| 
								 | 
							
								SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								SELECT * FROM t1;
							 | 
						||
| 
								 | 
							
								id
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								3
							 | 
						||
| 
								 | 
							
								#connection con1
							 | 
						||
| 
								 | 
							
								SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES(7);
							 | 
						||
| 
								 | 
							
								COMMIT;
							 | 
						||
| 
								 | 
							
								# connection default
							 | 
						||
| 
								 | 
							
								COMMIT;
							 | 
						||
| 
								 | 
							
								FLUSH TABLES;
							 | 
						||
| 
								 | 
							
								# Test REPEATABLE READ -> READ COMMITTED
							 | 
						||
| 
								 | 
							
								SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								SELECT * FROM t1;
							 | 
						||
| 
								 | 
							
								id
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								3
							 | 
						||
| 
								 | 
							
								7
							 | 
						||
| 
								 | 
							
								# connection con1
							 | 
						||
| 
								 | 
							
								SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES(9);
							 | 
						||
| 
								 | 
							
								ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
							 | 
						||
| 
								 | 
							
								COMMIT;
							 | 
						||
| 
								 | 
							
								COMMIT;
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 |