stop slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; create table t1(a int auto_increment, key(a)); create table t2(b int auto_increment, c int, key(b)); insert into t1 values (1),(2),(3); insert into t1 values (null); insert into t2 values (null,last_insert_id()); select * from t1; a 1 2 3 4 select * from t2; b c 1 4 drop table t1; drop table t2; create table t1(a int auto_increment, key(a)) engine=innodb; create table t2(b int auto_increment, c int, key(b), foreign key(b) references t1(a)) engine=innodb; SET FOREIGN_KEY_CHECKS=0; insert into t1 values (10); insert into t1 values (null),(null),(null); insert into t2 values (5,0); insert into t2 values (null,last_insert_id()); SET FOREIGN_KEY_CHECKS=1; select * from t1; a 10 11 12 13 select * from t2; b c 5 0 6 11 drop table t2; drop table t1; create table t1(a int auto_increment, key(a)); create table t2(b int auto_increment, c int, key(b)); insert into t1 values (10); insert into t1 values (null),(null),(null); insert into t2 values (5,0); insert into t2 (c) select * from t1; select * from t2; b c 5 0 6 10 7 11 8 12 9 13 select * from t1; a 10 11 12 13 select * from t2; b c 5 0 6 10 7 11 8 12 9 13 drop table t1; drop table t2; SET TIMESTAMP=1000000000; CREATE TABLE t1 ( a INT UNIQUE ); SET FOREIGN_KEY_CHECKS=0; INSERT INTO t1 VALUES (1),(1); ERROR 23000: Duplicate entry '1' for key 1 drop table t1; drop function if exists bug15728; drop function if exists bug15728_insert; drop table if exists t1, t2; create table t1 ( id int not null auto_increment, last_id int, primary key (id) ); create function bug15728() returns int(11) return last_insert_id(); insert into t1 (last_id) values (0); insert into t1 (last_id) values (last_insert_id()); insert into t1 (last_id) values (bug15728()); create table t2 ( id int not null auto_increment, last_id int, primary key (id) ); create function bug15728_insert() returns int(11) modifies sql data begin insert into t2 (last_id) values (bug15728()); return bug15728(); end| create trigger t1_bi before insert on t1 for each row begin declare res int; select bug15728_insert() into res; set NEW.last_id = res; end| insert into t1 (last_id) values (0); drop trigger t1_bi; select last_insert_id(); last_insert_id() 4 select bug15728_insert(); bug15728_insert() 2 select last_insert_id(); last_insert_id() 4 insert into t1 (last_id) values (bug15728()); select last_insert_id(); last_insert_id() 5 select * from t1; id last_id 1 0 2 1 3 2 4 1 5 4 select * from t2; id last_id 1 3 2 4 drop function bug15728; drop function bug15728_insert; drop table t1, t2;