mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
91ff64e107
This allows one to setup a master <-> master replication with non conflicting auto-increment series. Cleaned up binary log code to make it easyer to add new state variables. Added simpler 'upper level' logic for artificial events (events that should not cause cleanups on slave). Simplified binary log handling. Changed how auto_increment works together with to SET INSERT_ID=# to make it more predictable: Now the inserted rows in a multi-row statement are set independent of the existing rows in the table. (Before only InnoDB did this correctly)
185 lines
2.6 KiB
Text
185 lines
2.6 KiB
Text
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 not null auto_increment,b int, primary key (a)) engine=myisam auto_increment=3;
|
|
insert into t1 values (NULL,1),(NULL,2),(NULL,3);
|
|
select * from t1;
|
|
a b
|
|
12 1
|
|
22 2
|
|
32 3
|
|
select * from t1;
|
|
a b
|
|
12 1
|
|
22 2
|
|
32 3
|
|
drop table t1;
|
|
create table t1 (a int not null auto_increment,b int, primary key (a)) engine=myisam;
|
|
insert into t1 values (1,1),(NULL,2),(3,3),(NULL,4);
|
|
delete from t1 where b=4;
|
|
insert into t1 values (NULL,5),(NULL,6);
|
|
select * from t1;
|
|
a b
|
|
1 1
|
|
2 2
|
|
3 3
|
|
22 5
|
|
32 6
|
|
select * from t1;
|
|
a b
|
|
1 1
|
|
2 2
|
|
3 3
|
|
22 5
|
|
32 6
|
|
drop table t1;
|
|
set @@session.auto_increment_increment=100, @@session.auto_increment_offset=10;
|
|
show variables like "%auto%";
|
|
Variable_name Value
|
|
auto_incrememt_increment 100
|
|
auto_increment_offset 10
|
|
create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
|
|
insert into t1 values (NULL),(5),(NULL);
|
|
insert into t1 values (250),(NULL);
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
insert into t1 values (1000);
|
|
set @@insert_id=400;
|
|
insert into t1 values(NULL),(NULL);
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
400
|
|
410
|
|
1000
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
400
|
|
410
|
|
1000
|
|
drop table t1;
|
|
create table t1 (a int not null auto_increment, primary key (a)) engine=innodb;
|
|
insert into t1 values (NULL),(5),(NULL);
|
|
insert into t1 values (250),(NULL);
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
insert into t1 values (1000);
|
|
set @@insert_id=400;
|
|
insert into t1 values(NULL),(NULL);
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
400
|
|
410
|
|
1000
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
400
|
|
410
|
|
1000
|
|
drop table t1;
|
|
set @@session.auto_increment_increment=1, @@session.auto_increment_offset=1;
|
|
create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
|
|
insert into t1 values (NULL),(5),(NULL),(NULL);
|
|
insert into t1 values (500),(NULL),(502),(NULL),(NULL);
|
|
select * from t1;
|
|
a
|
|
1
|
|
5
|
|
6
|
|
7
|
|
500
|
|
501
|
|
502
|
|
503
|
|
504
|
|
set @@insert_id=600;
|
|
insert into t1 values(600),(NULL),(NULL);
|
|
ERROR 23000: Duplicate entry '600' for key 1
|
|
set @@insert_id=600;
|
|
insert ignore into t1 values(600),(NULL),(NULL),(610),(NULL);
|
|
select * from t1;
|
|
a
|
|
1
|
|
5
|
|
6
|
|
7
|
|
500
|
|
501
|
|
502
|
|
503
|
|
504
|
|
600
|
|
610
|
|
611
|
|
select * from t1;
|
|
a
|
|
1
|
|
5
|
|
6
|
|
7
|
|
500
|
|
501
|
|
502
|
|
503
|
|
504
|
|
600
|
|
610
|
|
611
|
|
drop table t1;
|
|
set @@session.auto_increment_increment=10, @@session.auto_increment_offset=1;
|
|
create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
|
|
insert into t1 values(2),(12),(22),(32),(42);
|
|
insert into t1 values (NULL),(NULL);
|
|
insert into t1 values (3),(NULL),(NULL);
|
|
select * from t1;
|
|
a
|
|
1
|
|
3
|
|
11
|
|
21
|
|
31
|
|
select * from t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
11
|
|
12
|
|
21
|
|
22
|
|
31
|
|
32
|
|
42
|
|
drop table t1;
|