include/master-slave.inc [connection master] CREATE TABLE t1 (id INT); CREATE PROCEDURE proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ CALL proc1(@cnt); SELECT @cnt; @cnt 0 INSERT INTO t1 VALUES (1), (2), (3); CALL proc1(@cnt); SELECT @cnt; @cnt 3 # Syncing with slave CALL proc1(@cnt); SELECT @cnt; @cnt 3 CREATE PROCEDURE proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ ERROR 42000: PROCEDURE proc1 already exists CREATE PROCEDURE IF NOT EXISTS proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ Warnings: Note 1304 PROCEDURE proc1 already exists CREATE OR REPLACE PROCEDURE IF NOT EXISTS proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ ERROR HY000: Incorrect usage of OR REPLACE and IF NOT EXISTS CREATE OR REPLACE PROCEDURE proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ # Syncing with slave CALL proc1(@cnt); SELECT @cnt; @cnt 3 DROP PROCEDURE proc1; CREATE PROCEDURE IF NOT EXISTS proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ INSERT INTO t1 VALUES (1), (2), (3); CALL proc1(@cnt); SELECT @cnt; @cnt 6 # Syncing with slave CALL proc1(@cnt); SELECT @cnt; @cnt 6 DROP PROCEDURE proc1; CREATE OR REPLACE PROCEDURE proc1 (OUT cnt INT) BEGIN SELECT COUNT(*) INTO cnt FROM t1; END$$ INSERT INTO t1 VALUES (1), (2), (3); CALL proc1(@cnt); SELECT @cnt; @cnt 9 # Syncing with slave CALL proc1(@cnt); SELECT @cnt; @cnt 9 DROP TABLE IF EXISTS t1; DROP PROCEDURE proc1; DROP PROCEDURE IF EXISTS proc2; Warnings: Note 1305 PROCEDURE test.proc2 does not exist # Syncing with slave DROP PROCEDURE proc1; ERROR 42000: PROCEDURE test.proc1 does not exist include/rpl_end.inc