include/master-slave.inc
[connection master]
CREATE TABLE test.t1 (a INT AUTO_INCREMENT KEY, t CHAR(6)) ENGINE=INNODB;
CREATE TABLE test.t2 (a INT AUTO_INCREMENT KEY, f INT, FOREIGN KEY(a) REFERENCES test.t1(a) ON DELETE CASCADE) ENGINE=INNODB;
create procedure test.p1(IN i CHAR(6))
begin
INSERT INTO test.t1 (t) VALUES (i);
INSERT INTO test.t2 VALUES (NULL,LAST_INSERT_ID());
end|
create procedure test.p2(IN i INT)
begin
DELETE FROM test.t1 where a < i;
end|
< -- test 1 select master after p1 -- >
---------------------------------------
SELECT * FROM test.t1;
a t 1 texas 2 Live 3 next 4 to 5 OK 6 MySQL
SELECT * FROM test.t2;
a f 11 22 33 44 55 66
< -- test 1 select slave after p1 -- >
--------------------------------------
connection slave;
SELECT * FROM test.t1;
a t 1 texas 2 Live 3 next 4 to 5 OK 6 MySQL
SELECT * FROM test.t2;
a f 11 22 33 44 55 66
< -- test 1 call p2 & select master -- >
----------------------------------------
connection master;
call test.p2(4);
SELECT * FROM test.t1;
a t 4 to 5 OK 6 MySQL
SELECT * FROM test.t2;
a f 44 55 66
< -- test 1 select slave after p2 -- >
--------------------------------------
connection slave;
SELECT * FROM test.t1;
a t 4 to 5 OK 6 MySQL
SELECT * FROM test.t2;
a f 44 55 66
connection master;
< -- End test 1 Begin test 2 -- >
--------------------------------- SET FOREIGN_KEY_CHECKS=0;
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
CREATE TABLE test.t1 (a INT, t CHAR(6), PRIMARY KEY(a)) ENGINE=INNODB;
CREATE TABLE test.t2 (a INT, f INT, FOREIGN KEY(a) REFERENCES test.t1(a) ON UPDATE CASCADE, PRIMARY KEY(a)) ENGINE=INNODB;
CREATE PROCEDURE test.p1(IN nm INT, IN ch CHAR(6))
BEGIN
INSERT INTO test.t1 (a,t) VALUES (nm, ch);
INSERT INTO test.t2 VALUES (nm, LAST_INSERT_ID());
END|
CREATE PROCEDURE test.p2(IN i INT)
BEGIN
UPDATE test.t1 SET a = i*10 WHERE a = i;
END| SET FOREIGN_KEY_CHECKS=1;
CALL test.p1(1,'texas');
CALL test.p1(2,'Live');
CALL test.p1(3,'next');
CALL test.p1(4,'to');
CALL test.p1(5,'OK');
CALL test.p1(6,'MySQL');
< -- test 2 select Master after p1 -- >
---------------------------------------
SELECT * FROM test.t1;
a t 1 texas 2 Live 3 next 4 to 5 OK 6 MySQL
SELECT * FROM test.t2;
a f 16 26 36 46 56 66
< -- test 2 select Slave after p1 -- >
--------------------------------------
connection slave;
SELECT * FROM test.t1;
a t 1 texas 2 Live 3 next 4 to 5 OK 6 MySQL
SELECT * FROM test.t2;
a f 16 26 36 46 56 66
< -- test 2 call p2 & select Master -- >
----------------------------------------
connection master;
CALL test.p2(2);
CALL test.p2(4);
CALL test.p2(6);
SELECT * FROM test.t1;
a t 1 texas 3 next 5 OK 20 Live 40 to 60 MySQL
SELECT * FROM test.t2;
a f 16 36 56 206 406 606
< -- test 1 select Slave after p2 -- >
--------------------------------------
connection slave;
SELECT * FROM test.t1;
a t 1 texas 3 next 5 OK 20 Live 40 to 60 MySQL
SELECT * FROM test.t2;
a f 16 36 56 206 406 606
connection master;
< -- End test 2 Begin test 3 -- >
---------------------------------
CREATE TABLE test.t3 (a INT AUTO_INCREMENT KEY, t CHAR(6))ENGINE=INNODB;
CREATE PROCEDURE test.p3(IN n INT)
begin CASE n
WHEN 2 THEN
DELETE from test.t3;
ELSE
INSERT INTO test.t3 VALUES (NULL,'NONE');
END CASE;
end| SET AUTOCOMMIT=0;
START TRANSACTION;
ROLLBACK;
select * from test.t3;
a t
connection slave;
select * from test.t3;
a t
connection master;
START TRANSACTION;
COMMIT;
select * from test.t3;
a t 98 NONE
connection slave;
select * from test.t3;
a t 98 NONE
connection master; SET AUTOCOMMIT=1; SET FOREIGN_KEY_CHECKS=0;
DROP PROCEDURE test.p3;
DROP PROCEDURE test.p1;
DROP PROCEDURE test.p2;
DROP TABLE test.t1;
DROP TABLE test.t2;
DROP TABLE test.t3;
include/rpl_end.inc
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-10-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.