52 lines
		
	
	
		
			861 B
		
	
	
	
		
			SQL
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			861 B
		
	
	
	
		
			SQL
		
	
	
	
-- connect (con1,localhost,root,,)
 | 
						|
-- connect (con2,localhost,root,,)
 | 
						|
 | 
						|
-- connection con1
 | 
						|
SET autocommit=0;
 | 
						|
SELECT * FROM t1 FOR UPDATE;
 | 
						|
-- if ($con1_extra_sql_present) {
 | 
						|
	-- eval $con1_extra_sql
 | 
						|
-- }
 | 
						|
 | 
						|
-- connection con2
 | 
						|
SET autocommit=0;
 | 
						|
SELECT * FROM t2 FOR UPDATE;
 | 
						|
-- if ($con2_extra_sql_present) {
 | 
						|
	-- eval $con2_extra_sql
 | 
						|
-- }
 | 
						|
 | 
						|
-- if ($con1_should_be_rolledback) {
 | 
						|
	-- connection con1
 | 
						|
	-- send
 | 
						|
	INSERT INTO t2 VALUES (0);
 | 
						|
 | 
						|
	-- connection con2
 | 
						|
	INSERT INTO t1 VALUES (0);
 | 
						|
	ROLLBACK;
 | 
						|
 | 
						|
	-- connection con1
 | 
						|
	-- error ER_LOCK_DEADLOCK
 | 
						|
	-- reap
 | 
						|
-- }
 | 
						|
# else
 | 
						|
-- if (!$con1_should_be_rolledback) {
 | 
						|
	-- connection con2
 | 
						|
	-- send
 | 
						|
	INSERT INTO t1 VALUES (0);
 | 
						|
 | 
						|
	-- connection con1
 | 
						|
	INSERT INTO t2 VALUES (0);
 | 
						|
	ROLLBACK;
 | 
						|
 | 
						|
	-- connection con2
 | 
						|
	-- error ER_LOCK_DEADLOCK
 | 
						|
	-- reap
 | 
						|
-- }
 | 
						|
 | 
						|
-- connection default
 | 
						|
 | 
						|
DELETE FROM t5_nontrans;
 | 
						|
 | 
						|
-- disconnect con1
 | 
						|
-- disconnect con2
 |