126 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			126 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # Establish connection con1 (user=root) | ||
|  | # Establish connection con2 (user=root) | ||
|  | drop table if exists t1,t2; | ||
|  | # Switch to connection con1 | ||
|  | create table t1 (id integer, x integer) engine = InnoDB; | ||
|  | insert into t1 values(0, 0); | ||
|  | set autocommit=0; | ||
|  | SELECT * from t1 where id = 0 FOR UPDATE; | ||
|  | id	x | ||
|  | 0	0 | ||
|  | # Switch to connection con2 | ||
|  | set autocommit=0; | ||
|  | update t1 set x=2 where id = 0; | ||
|  | # Switch to connection con1 | ||
|  | update t1 set x=1 where id = 0; | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	1 | ||
|  | commit; | ||
|  | # Switch to connection con2 | ||
|  | commit; | ||
|  | # Switch to connection con1 | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	2 | ||
|  | commit; | ||
|  | drop table t1; | ||
|  | # Switch to connection con1 | ||
|  | create table t1 (id integer, x integer) engine = InnoDB; | ||
|  | create table t2 (b integer, a integer) engine = InnoDB; | ||
|  | insert into t1 values(0, 0), (300, 300); | ||
|  | insert into t2 values(0, 10), (1, 20), (2, 30); | ||
|  | commit; | ||
|  | set autocommit=0; | ||
|  | select * from t2; | ||
|  | b	a | ||
|  | 0	10 | ||
|  | 1	20 | ||
|  | 2	30 | ||
|  | update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE); | ||
|  | select * from t2; | ||
|  | b	a | ||
|  | 0	100 | ||
|  | 1	20 | ||
|  | 2	30 | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	0 | ||
|  | 300	300 | ||
|  | # Switch to connection con2 | ||
|  | set autocommit=0; | ||
|  | update t1 set x=2 where id = 0; | ||
|  | # Switch to connection con1 | ||
|  | update t1 set x=1 where id = 0; | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	1 | ||
|  | 300	300 | ||
|  | commit; | ||
|  | # Switch to connection con2 | ||
|  | commit; | ||
|  | # Switch to connection con1 | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	2 | ||
|  | 300	300 | ||
|  | commit; | ||
|  | drop table t1, t2; | ||
|  | create table t1 (id integer, x integer) engine = InnoDB; | ||
|  | create table t2 (b integer, a integer) engine = InnoDB; | ||
|  | insert into t1 values(0, 0), (300, 300); | ||
|  | insert into t2 values(0, 0), (1, 20), (2, 30); | ||
|  | commit; | ||
|  | # Switch to connection con1 | ||
|  | select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE; | ||
|  | a	b | ||
|  | 0	0 | ||
|  | 20	1 | ||
|  | 30	2 | ||
|  | 300	300 | ||
|  | select * from t2; | ||
|  | b	a | ||
|  | 0	0 | ||
|  | 1	20 | ||
|  | 2	30 | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	0 | ||
|  | 300	300 | ||
|  | # Switch to connection con2 | ||
|  | update t2 set a=2 where b = 0; | ||
|  | select * from t2; | ||
|  | b	a | ||
|  | 0	2 | ||
|  | 1	20 | ||
|  | 2	30 | ||
|  | update t1 set x=2 where id = 0; | ||
|  | # Switch to connection con1 | ||
|  | update t1 set x=1 where id = 0; | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	1 | ||
|  | 300	300 | ||
|  | commit; | ||
|  | # Switch to connection con2 | ||
|  | commit; | ||
|  | # Switch to connection con1 | ||
|  | select * from t1; | ||
|  | id	x | ||
|  | 0	2 | ||
|  | 300	300 | ||
|  | commit; | ||
|  | # Switch to connection default + disconnect con1 and con2 | ||
|  | drop table t1, t2; | ||
|  | End of 4.1 tests | ||
|  | set storage_engine=innodb; | ||
|  | drop table if exists a; | ||
|  | drop table if exists A; | ||
|  | create table A (c int); | ||
|  | insert into A (c) values (0); | ||
|  | create table a as select * from A; | ||
|  | drop table A; | ||
|  | drop table if exists a; | ||
|  | set storage_engine=default; | ||
|  | End of 5.0 tests. |