include/master-slave.inc
Warnings:
Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
Note	####	Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
[connection master]
DROP PROCEDURE IF EXISTS test.p1;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
CREATE TABLE test.t1 (a INT, PRIMARY KEY(a));
INSERT INTO test.t1 VALUES (1),(2),(3),(4);
CREATE TABLE test.t2 (a INT, PRIMARY KEY(a));
CREATE PROCEDURE test.p1 (arg1 CHAR(1))
BEGIN
DECLARE b, c INT;
IF arg1 = 'a' THEN
BEGIN
DECLARE cur1 CURSOR FOR SELECT A FROM test.t1 WHERE a % 2;
DECLARE continue handler for not found set b = 1;
SET b = 0;
OPEN cur1;
c1_repeat: REPEAT
FETCH cur1 INTO c;
IF (b = 1) THEN
LEAVE c1_repeat;
END IF;
INSERT INTO test.t2 VALUES (c);
UNTIL b = 1
END REPEAT;
CLOSE cur1;
END;
END IF;
IF arg1 = 'b' THEN
BEGIN
DECLARE cur2 CURSOR FOR SELECT a FROM test.t1 WHERE NOT a % 2;
DECLARE continue handler for not found set b = 1;
SET b = 0;
OPEN cur2;
c2_repeat: REPEAT
FETCH cur2 INTO c;
IF (b = 1) THEN
LEAVE c2_repeat;
END IF;
INSERT INTO test.t2 VALUES (c);
UNTIL b = 1
END REPEAT;
CLOSE cur2;
END;
END IF;
END|
CALL test.p1('a');
SELECT * FROM test.t2 ORDER BY a;
a
1
3
include/sync_slave_sql_with_master.inc
SELECT * FROM test.t2 ORDER BY a;
a
1
3
truncate test.t2;
call test.p1('b');
select * from test.t2 ORDER BY a;
a
2
4
include/sync_slave_sql_with_master.inc
SELECT * FROM test.t2 ORDER BY a;
a
2
4
truncate test.t2;
SELECT * FROM test.t2 ORDER BY a;
a
include/sync_slave_sql_with_master.inc
SELECT * FROM test.t2 ORDER BY a;
a
DROP PROCEDURE test.p1;
DROP TABLE test.t1;
DROP TABLE test.t2;
include/sync_slave_sql_with_master.inc
include/rpl_end.inc
