DROP TABLE IF EXISTS deadlock; CREATE TABLE deadlock ( id tinyint unsigned NOT NULL auto_increment, value tinyint unsigned NOT NULL DEFAULT 0, PRIMARY KEY (id) ) ENGINE=InnoDB; INSERT INTO deadlock VALUES (1, 1), (2, 2); /************** * * * Master * * * **************/ START TRANSACTION; UPDATE deadlock SET value = value + sleep(3) WHERE id = 1; UPDATE deadlock SET value = value + 1 WHERE id = 2; COMMIT; /************** * * * Slave * * * **************/ START TRANSACTION; UPDATE deadlock SET value = value + 1 WHERE id = 2; INSERT INTO deadlock VALUES (NULL, 0); UPDATE deadlock SET value = value + 1 WHERE id = 1; COMMIT; START TRANSACTION; UPDATE deadlock SET value = value + 1 WHERE id = 2; INSERT INTO deadlock VALUES (NULL, 0); UPDATE deadlock SET value = value + 1 WHERE id = 1; COMMIT;