1) ON MASTER:

DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (`id1` INT NOT NULL,`id2` INT NOT NULL,UNIQUE KEY  (`id1`,`id2`)) ENGINE=InnoDB;
INSERT INTO `t1`(`id1`,`id2`) VALUES (1,2),(2,3),(3,4),(4,5);


2) ON SLAVE:

BEGIN;
SELECT * FROM `t1` WHERE `id1`=1 FOR UPDATE;


3) ON MASTER:

BEGIN;
INSERT INTO `t1` VALUES (5,6);
UPDATE `t1` SET `id1`=999 WHERE `id1`=1;
COMMIT;

//now wait for innodb lock wait timeout to expire...and check slaves logs.


060719 17:43:24 [Note] Slave I/O thread: connected to master 'root@127.0.0.1:3307',  replication started in log 'FIRST' at position 4
060719 17:44:44 [ERROR] Slave: Error 'Lock wait timeout exceeded; try restarting transaction' on query. Default database: 'db10616'. Query: 'UPDATE `t1` SET `id1`=999 WHERE `id1`=1', Error_code: 1205
060719 17:44:44 [ERROR] Slave: Error 'Duplicate entry '5-6' for key 1' on query. Default database: 'db10616'. Query: 'INSERT INTO `t1`VALUES (5,6)', Error_code: 1062
060719 17:44:44 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'aserver-bin.000001' position 375



