########################################################### # See if queries that use both auto_increment and LAST_INSERT_ID() # are replicated well ############################################################ # REQUIREMENT # Auto increment should work for a table with auto_increment column # and primary key. ############################################################## # We also check how the foreign_key_check variable is replicated -- source include/master-slave.inc #should work for both SBR and RBR connection master; create table t1(a int auto_increment, primary key(a)); create table t2(b int auto_increment, c int, primary key(b)); insert into t1 values (1),(2),(3); insert into t1 values (null); insert into t2 values (null,last_insert_id()); sync_slave_with_master; select * from t1 ORDER BY a; select * from t2 ORDER BY b; 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 eval create table t1(a int auto_increment, key(a)) engine=$engine_type; eval create table t2(b int auto_increment, c int, key(b), foreign key(b) references t1(a)) engine=$engine_type; --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; sync_slave_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, primary key(a)); create table t2(b int auto_increment, c int, primary 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 ORDER BY a; select * from t2 ORDER BY b; sync_slave_with_master; select * from t1 ORDER BY a; select * from t2 ORDER BY b; connection master; drop table t1; drop table t2; sync_slave_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; # Duplicate Key Errors codes --error 1022, ER_DUP_ENTRY INSERT INTO t1 VALUES (1),(1); sync_slave_with_master; connection master; drop table t1; # End of 4.1 tests --source include/rpl_end.inc