mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| include/master-slave.inc
 | |
| [connection master]
 | |
| connection master;
 | |
| DROP PROCEDURE IF EXISTS test.p1;
 | |
| DROP PROCEDURE IF EXISTS test.p2;
 | |
| DROP TABLE IF EXISTS test.t2;
 | |
| DROP TABLE IF EXISTS test.t1;
 | |
| DROP TABLE IF EXISTS test.t3;
 | |
| CREATE TABLE IF NOT EXISTS test.t1(id INT, data CHAR(16),PRIMARY KEY(id));
 | |
| CREATE TABLE IF NOT EXISTS test.t2(id2 INT,PRIMARY KEY(id2));
 | |
| CREATE TABLE IF NOT EXISTS test.t3(id3 INT,PRIMARY KEY(id3), c CHAR(16));
 | |
| CREATE PROCEDURE test.p1()
 | |
| BEGIN
 | |
| DECLARE done INT DEFAULT 0;
 | |
| DECLARE spa CHAR(16);
 | |
| DECLARE spb,spc INT;
 | |
| DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1 ORDER BY id;
 | |
| DECLARE cur2 CURSOR FOR SELECT id2 FROM test.t2 ORDER BY id2;
 | |
| DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 | |
| OPEN cur1;
 | |
| OPEN cur2;
 | |
| REPEAT
 | |
| FETCH cur1 INTO spb, spa;
 | |
| FETCH cur2 INTO spc;
 | |
| IF NOT done THEN
 | |
| IF spb < spc THEN
 | |
| INSERT INTO test.t3 VALUES (spb,spa);
 | |
| ELSE
 | |
| INSERT INTO test.t3 VALUES (spc,spa);
 | |
| END IF;
 | |
| END IF;
 | |
| UNTIL done END REPEAT;
 | |
| CLOSE cur1;
 | |
| CLOSE cur2;
 | |
| END|
 | |
| CREATE PROCEDURE test.p2()
 | |
| BEGIN
 | |
| INSERT INTO test.t1 VALUES (4,'MySQL'),(20,'ROCKS'),(11,'Texas'),(10,'kyle');
 | |
| INSERT INTO test.t2 VALUES (4),(2),(1),(3);
 | |
| UPDATE test.t1 SET id=id+4 WHERE id=4;
 | |
| END|
 | |
| CALL test.p2();
 | |
| SELECT * FROM test.t1 ORDER BY id;
 | |
| id	data
 | |
| 8	MySQL
 | |
| 10	kyle
 | |
| 11	Texas
 | |
| 20	ROCKS
 | |
| SELECT * FROM test.t2 ORDER BY id2;
 | |
| id2
 | |
| 1
 | |
| 2
 | |
| 3
 | |
| 4
 | |
| connection slave;
 | |
| SELECT * FROM test.t1 ORDER BY id;
 | |
| id	data
 | |
| 8	MySQL
 | |
| 10	kyle
 | |
| 11	Texas
 | |
| 20	ROCKS
 | |
| SELECT * FROM test.t2 ORDER BY id2;
 | |
| id2
 | |
| 1
 | |
| 2
 | |
| 3
 | |
| 4
 | |
| connection master;
 | |
| CALL test.p1();
 | |
| SELECT * FROM test.t3 ORDER BY id3;
 | |
| id3	c
 | |
| 1	MySQL
 | |
| 2	kyle
 | |
| 3	Texas
 | |
| 4	ROCKS
 | |
| connection slave;
 | |
| SELECT * FROM test.t3 ORDER BY id3;
 | |
| id3	c
 | |
| 1	MySQL
 | |
| 2	kyle
 | |
| 3	Texas
 | |
| 4	ROCKS
 | |
| connection master;
 | |
| ALTER PROCEDURE test.p1 MODIFIES SQL DATA;
 | |
| connection master;
 | |
| DROP PROCEDURE IF EXISTS test.p1;
 | |
| DROP PROCEDURE IF EXISTS test.p2;
 | |
| DROP TABLE IF EXISTS test.t1;
 | |
| DROP TABLE IF EXISTS test.t2;
 | |
| DROP TABLE IF EXISTS test.t3;
 | |
| connection slave;
 | |
| include/rpl_end.inc
 | 
