mirror of
https://github.com/MariaDB/server.git
synced 2025-01-25 00:04:33 +01:00
399 lines
7.8 KiB
Text
399 lines
7.8 KiB
Text
include/master-slave.inc
|
|
[connection master]
|
|
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
|
|
connection slave;
|
|
select * from t1;
|
|
a b
|
|
12 1
|
|
22 2
|
|
32 3
|
|
connection master;
|
|
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
|
|
connection slave;
|
|
select * from t1;
|
|
a b
|
|
1 1
|
|
2 2
|
|
3 3
|
|
22 5
|
|
32 6
|
|
connection master;
|
|
drop table t1;
|
|
set @@session.auto_increment_increment=100, @@session.auto_increment_offset=10;
|
|
show variables like "auto_inc%";
|
|
Variable_name Value
|
|
auto_increment_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
|
|
connection slave;
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
400
|
|
410
|
|
1000
|
|
connection master;
|
|
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
|
|
connection slave;
|
|
select * from t1;
|
|
a
|
|
5
|
|
10
|
|
110
|
|
250
|
|
310
|
|
400
|
|
410
|
|
1000
|
|
connection master;
|
|
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 'PRIMARY'
|
|
set @@insert_id=600;
|
|
insert ignore into t1 values(600),(NULL),(NULL),(610),(NULL);
|
|
Warnings:
|
|
Warning 1062 Duplicate entry '600' for key 'PRIMARY'
|
|
Warning 1062 Duplicate entry '600' for key 'PRIMARY'
|
|
Warning 1062 Duplicate entry '600' for key 'PRIMARY'
|
|
select * from t1;
|
|
a
|
|
1
|
|
5
|
|
6
|
|
7
|
|
500
|
|
501
|
|
502
|
|
503
|
|
504
|
|
600
|
|
610
|
|
611
|
|
connection slave;
|
|
select * from t1;
|
|
a
|
|
1
|
|
5
|
|
6
|
|
7
|
|
500
|
|
501
|
|
502
|
|
503
|
|
504
|
|
600
|
|
610
|
|
611
|
|
connection master;
|
|
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;
|
|
connection slave;
|
|
insert into t1 values(2),(12),(22),(32),(42);
|
|
connection master;
|
|
insert into t1 values (NULL),(NULL);
|
|
insert into t1 values (3),(NULL),(NULL);
|
|
select * from t1;
|
|
a
|
|
1
|
|
3
|
|
11
|
|
21
|
|
31
|
|
connection slave;
|
|
select * from t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
11
|
|
12
|
|
21
|
|
22
|
|
31
|
|
32
|
|
42
|
|
connection master;
|
|
drop table t1;
|
|
create table t1 (a tinyint not null auto_increment primary key) engine=myisam;
|
|
insert into t1 values(103);
|
|
set auto_increment_increment=11;
|
|
set auto_increment_offset=4;
|
|
insert into t1 values(null);
|
|
insert into t1 values(null);
|
|
insert into t1 values(null);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
select a, mod(a-@@auto_increment_offset,@@auto_increment_increment) from t1 order by a;
|
|
a mod(a-@@auto_increment_offset,@@auto_increment_increment)
|
|
103 0
|
|
114 0
|
|
125 0
|
|
create table t2 (a tinyint unsigned not null auto_increment primary key) engine=myisam;
|
|
set auto_increment_increment=10;
|
|
set auto_increment_offset=1;
|
|
set insert_id=1000;
|
|
insert into t2 values(10);
|
|
insert into t2 values(null);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
select a, mod(a-@@auto_increment_offset,@@auto_increment_increment) from t2 order by a;
|
|
a mod(a-@@auto_increment_offset,@@auto_increment_increment)
|
|
10 9
|
|
create table t3 like t1;
|
|
set auto_increment_increment=1000;
|
|
set auto_increment_offset=700;
|
|
insert into t3 values(null);
|
|
ERROR 22003: Out of range value for column 'a' at row 1
|
|
select * from t3 order by a;
|
|
a
|
|
connection slave;
|
|
select * from t1 order by a;
|
|
a
|
|
103
|
|
114
|
|
125
|
|
select * from t2 order by a;
|
|
a
|
|
10
|
|
select * from t3 order by a;
|
|
a
|
|
connection master;
|
|
drop table t1,t2,t3;
|
|
connection slave;
|
|
connection master;
|
|
set auto_increment_increment=1;
|
|
set auto_increment_offset=1;
|
|
CREATE TABLE t1 (id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=innodb;
|
|
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
|
|
connection slave;
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
|
|
connection master;
|
|
drop table t1;
|
|
include/rpl_reset.inc
|
|
connection master;
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP TABLE IF EXISTS t2;
|
|
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=innodb;
|
|
CREATE TABLE t2 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=myisam;
|
|
SET SQL_MODE='';
|
|
INSERT INTO t1 VALUES(NULL);
|
|
INSERT INTO t2 VALUES(NULL);
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
SELECT * FROM t2;
|
|
id
|
|
1
|
|
INSERT INTO t1 VALUES();
|
|
INSERT INTO t2 VALUES();
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
SELECT * FROM t2;
|
|
id
|
|
1
|
|
2
|
|
INSERT INTO t1 VALUES(0);
|
|
INSERT INTO t2 VALUES(0);
|
|
SELECT * FROM t1;
|
|
id
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t2;
|
|
id
|
|
1
|
|
2
|
|
3
|
|
SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
|
|
INSERT INTO t1 VALUES(0);
|
|
INSERT INTO t2 VALUES(0);
|
|
SELECT * FROM t1;
|
|
id
|
|
0
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t2;
|
|
id
|
|
0
|
|
1
|
|
2
|
|
3
|
|
INSERT INTO t1 VALUES(4);
|
|
INSERT INTO t2 VALUES(4);
|
|
FLUSH LOGS;
|
|
connection slave;
|
|
include/diff_tables.inc [master:t1, slave:t1]
|
|
include/diff_tables.inc [master:t2, slave:t2]
|
|
connection master;
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
connection slave;
|
|
connection master;
|
|
connection slave;
|
|
include/diff_tables.inc [master:t1, slave:t1]
|
|
include/diff_tables.inc [master:t2, slave:t2]
|
|
connection master;
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
SET SQL_MODE='';
|
|
connection slave;
|
|
connection master;
|
|
CREATE TABLE t1(s VARCHAR(10)) ENGINE=myisam;
|
|
CREATE TABLE t_ignored1(id INT AUTO_INCREMENT PRIMARY KEY) ENGINE=myisam;
|
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column");
|
|
connection slave;
|
|
connection slave;
|
|
CREATE TABLE test.slave_only(id INT AUTO_INCREMENT PRIMARY KEY) ENGINE=myisam;
|
|
INSERT INTO slave_only VALUES(NULL);
|
|
CREATE TRIGGER t1_update AFTER UPDATE ON t1 FOR EACH ROW INSERT INTO slave_only VALUES(NULL);
|
|
connection master;
|
|
INSERT INTO t_ignored1 VALUES(NULL);
|
|
INSERT INTO t1 VALUES('s');
|
|
UPDATE t1 SET s='s1';
|
|
connection slave;
|
|
connection slave;
|
|
SELECT * FROM t1;
|
|
s
|
|
s1
|
|
connection master;
|
|
CREATE TABLE t_ignored2(id INT AUTO_INCREMENT PRIMARY KEY) ENGINE=myisam;
|
|
connection slave;
|
|
connection slave;
|
|
STOP SLAVE;
|
|
SET GLOBAL sql_slave_skip_counter = 2;
|
|
START SLAVE;
|
|
connection master;
|
|
INSERT INTO t_ignored2 VALUES(NULL);
|
|
UPDATE t1 SET s='s2';
|
|
connection slave;
|
|
connection slave;
|
|
SELECT * FROM t1;
|
|
s
|
|
s2
|
|
SHOW TABLES LIKE 't\_ignored_';
|
|
Tables_in_test (t\_ignored_)
|
|
t_ignored2
|
|
SELECT * FROM t_ignored2;
|
|
id
|
|
DROP TABLE slave_only;
|
|
connection master;
|
|
DROP TABLE t1;
|
|
DROP TABLE t_ignored1;
|
|
DROP TABLE t_ignored2;
|
|
connection master;
|
|
CREATE TABLE t1 (id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, data INT) ENGINE=innodb;
|
|
BEGIN;
|
|
# Set sql_mode with NO_AUTO_VALUE_ON_ZERO for allowing
|
|
# zero to fill the auto_increment field.
|
|
SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
|
|
INSERT INTO t1(id,data) VALUES(0,2);
|
|
# Resetting sql_mode without NO_AUTO_VALUE_ON_ZERO to
|
|
# affect the execution of the transaction on slave.
|
|
SET SQL_MODE=0;
|
|
COMMIT;
|
|
SELECT * FROM t1;
|
|
id data
|
|
0 2
|
|
connection slave;
|
|
SELECT * FROM t1;
|
|
id data
|
|
0 2
|
|
connection master;
|
|
DROP TABLE t1;
|
|
connection slave;
|
|
include/rpl_end.inc
|