# See if queries that use both auto_increment and LAST_INSERT_ID() # are replicated well # We also check how the foreign_key_check variable is replicated source include/master-slave.inc; source include/have_innodb.inc; connection master; 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()); save_master_pos; connection slave; sync_with_master; select * from t1; select * from t2; connection master; #check if multi-line inserts, #which set last_insert_id to the first id inserted, #are replicated the same way drop table t1; drop table t2; --disable_warnings 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; --enable_warnings 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; save_master_pos; connection slave; sync_with_master; select * from t1; select * from t2; connection master; # check if INSERT SELECT in auto_increment is well replicated (bug #490) 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; save_master_pos; connection slave; sync_with_master; select * from t1; select * from t2; connection master; drop table t1; drop table t2; save_master_pos; connection slave; sync_with_master; # # Bug#8412: Error codes reported in binary log for CHARACTER SET, # FOREIGN_KEY_CHECKS # connection master; SET TIMESTAMP=1000000000; CREATE TABLE t1 ( a INT UNIQUE ); SET FOREIGN_KEY_CHECKS=0; --error 1062 INSERT INTO t1 VALUES (1),(1); sync_slave_with_master; # # Bug#14553: NULL in WHERE resets LAST_INSERT_ID # connection master; drop table t1; create table t1(a int auto_increment, key(a)); create table t2(a int); insert into t1 (a) values (null); insert into t2 (a) select a from t1 where a is null; insert into t2 (a) select a from t1 where a is null; select * from t2; sync_slave_with_master; connection slave; select * from t2; connection master; drop table t1; drop table t2; sync_slave_with_master; # End of 4.1 tests