SET @default_innodb_autoinc_lock_mode = @@global.innodb_autoinc_lock_mode; SELECT @@global.innodb_autoinc_lock_mode; @@global.innodb_autoinc_lock_mode 2 SET @default_auto_increment_offset = @@global.auto_increment_offset; SET @default_auto_increment_increment = @@global.auto_increment_increment; # Bulk inserts in interleaved lock mode CREATE TABLE t3(cc INT); INSERT INTO t3 VALUES (10),(20),(30),(40),(50),(60),(70),(80); CREATE TABLE t4(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); INSERT INTO t4(cc) SELECT * FROM t3; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `pkey` int(11) NOT NULL AUTO_INCREMENT, `cc` int(11) DEFAULT NULL, PRIMARY KEY (`pkey`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci INSERT INTO t4(cc) SELECT * FROM t3; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `pkey` int(11) NOT NULL AUTO_INCREMENT, `cc` int(11) DEFAULT NULL, PRIMARY KEY (`pkey`) ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci DROP TABLE t4; DROP TABLE t3; # Concurrent simple inserts in interleaved lock mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT); CREATE PROCEDURE POP1() BEGIN DECLARE i INT DEFAULT 1; WHILE (i<= 10) DO INSERT INTO t1 VALUES(NULL,i); IF ((i%2) =0 ) THEN DELETE FROM t1 WHERE bb=i; END IF; SET i = i+1; END WHILE; END // CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 10 SET @@global.auto_increment_offset = 9; SET @@global.auto_increment_increment = 10; TRUNCATE TABLE t1; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 10 SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP1; DROP TABLE t1; # Concurrent bulk inserts in interleaved lock mode CREATE TABLE t2 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t1 (aa INT); CREATE PROCEDURE POP() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO t1 VALUES(i); SET i = i +1; END WHILE; INSERT INTO t2(aa) SELECT * FROM t1; END // CALL POP(); CALL POP(); SET @@global.auto_increment_offset = 7; SET @@global.auto_increment_increment = 15; TRUNCATE TABLE t1; TRUNCATE TABLE t2; CALL POP(); CALL POP(); SET @@global.auto_increment_increment = @default_auto_increment_increment; SET @@global.auto_increment_offset = @default_auto_increment_offset; DROP TABLE t1; DROP TABLE t2; DROP PROCEDURE POP; # Concurrent mixed mode inserts in interleaved lock mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); CREATE PROCEDURE POP2(IN j INT) BEGIN DECLARE i INT DEFAULT 1; WHILE (i<=5) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES(100+j,20); WHILE(i>=5 && i<=10) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES (200+j,25); WHILE(i>=10 && i<=15) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; END // Warnings: Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead CALL POP2(1); CALL POP2(120); SELECT COUNT(*) FROM t1; COUNT(*) 34 SET @@global.auto_increment_offset = 13; SET @@global.auto_increment_increment = 43; TRUNCATE TABLE t1; CALL POP2(1); CALL POP2(280); SELECT COUNT(*) FROM t1; COUNT(*) 34 SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP2; DROP TABLE t1; # Transactions in interleaved lock mode CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 4 5 6 DROP TABLE t1; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t2(aa INT); INSERT INTO t2 VALUES(1),(2),(3),(4),(5),(6),(7); START TRANSACTION; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 1 1 2 2 3 3 4 4 5 5 6 6 7 7 ROLLBACK; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 8 1 9 2 10 3 11 4 12 5 13 6 14 7 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 1 2 3 4 23 24 25 26 27 34 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 23 24 34 35 36 37 38 39 40 41 DROP TABLE t1; # Simple, Mixed and Bulk inserts with auto increment offset in interleaved locking mode SET @@auto_increment_offset = 17; SET @@auto_increment_increment = 40; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 17 57 97 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 137 177 217 DROP TABLE t1; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t2(aa INT); INSERT INTO t2 VALUES(1),(2),(3),(4),(5),(6),(7); START TRANSACTION; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 17 1 57 2 97 3 137 4 177 5 217 6 257 7 ROLLBACK; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 297 1 337 2 377 3 417 4 457 5 497 6 537 7 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 17 23 24 34 57 97 137 177 217 257 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 23 24 34 297 337 377 417 457 497 537 DROP TABLE t1; SET @@auto_increment_offset = @default_auto_increment_offset; SET @@auto_increment_increment = @default_auto_increment_increment; # Transactions with concurrency in interleaved locking mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT); CREATE PROCEDURE POP1() BEGIN DECLARE i INT DEFAULT 1; WHILE (i<= 10) DO INSERT INTO t1 VALUES(NULL,i); SET i = i+1; END WHILE; END // START TRANSACTION; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 20 ROLLBACK; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 30 DROP PROCEDURE POP1; DROP TABLE t1; CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); CREATE PROCEDURE POP2(IN j INT) BEGIN DECLARE i INT DEFAULT 1; WHILE (i<=5) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES(100+j,20); WHILE(i>=5 && i<=10) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES (200+j,25); WHILE(i>=10 && i<=15) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; END // Warnings: Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead START TRANSACTION; CALL POP2(1); CALL POP2(60); SELECT COUNT(*) FROM t1; COUNT(*) 34 ROLLBACK; CALL POP2(1); CALL POP2(280); SELECT COUNT(*) FROM t1; COUNT(*) 51 DROP PROCEDURE POP2; DROP TABLE t1; # Crash server in interleaved lock mode CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE PROCEDURE POP() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO t1(aa) VALUES(i); SET i = i +1; END WHILE; END // START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_after"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart SELECT COUNT(*) FROM t1; COUNT(*) 10 START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_before"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart SELECT COUNT(*) FROM t1; COUNT(*) 10 TRUNCATE TABLE t1; SET @@auto_increment_offset = 20; SET @@auto_increment_increment = 40; START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_after"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart SELECT COUNT(*) FROM t1; COUNT(*) 10 START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_before"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart SELECT COUNT(*) FROM t1; COUNT(*) 10 DROP TABLE t1; DROP PROCEDURE POP; # Concurrent load inserts in interleaved lock mode CREATE TABLE loads ( pkey INT PRIMARY KEY AUTO_INCREMENT, ww CHAR(50)); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); SELECT MAX(pkey) FROM loads; MAX(pkey) 197 SET @@global.auto_increment_offset = 12; SET @@global.auto_increment_increment = 50; TRUNCATE TABLE loads; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); SELECT MAX(pkey) FROM loads; MAX(pkey) 9812 DROP TABLE loads; # Restart server with innodb_autoinc_lock_mode = 1 # restart: --innodb_autoinc_lock_mode=1 SELECT @@global.innodb_autoinc_lock_mode; @@global.innodb_autoinc_lock_mode 1 SET @default_auto_increment_offset = @@global.auto_increment_offset; SET @default_auto_increment_increment = @@global.auto_increment_increment; CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, a INT); INSERT INTO t1 values (NULL,3), (NULL,6), (NULL,9), (NULL,12), (NULL,15); SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 5 15 UPDATE t1 SET pkey = 6 WHERE a = 15; SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 6 15 INSERT INTO t1 VALUES (NULL,18); SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 6 15 7 18 DELETE FROM t1 WHERE a = 18; INSERT INTO t1 VALUES (NULL,18); SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 6 15 8 18 SET @default_auto_increment_increment = @@auto_increment_increment; SET @@auto_increment_increment=10; SELECT @@session.auto_increment_increment; @@session.auto_increment_increment 10 INSERT INTO t1 VALUES (NULL,21), (NULL,24), (NULL,27); SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 6 15 8 18 11 21 21 24 31 27 SET @default_auto_increment_offset = @@auto_increment_offset; SET @@auto_increment_offset=5; SELECT @@auto_increment_offset; @@auto_increment_offset 5 INSERT INTO t1 VALUES (NULL,30), (NULL,33), (NULL,36); SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 6 15 8 18 11 21 21 24 31 27 45 30 55 33 65 36 SET @@auto_increment_offset =150; SELECT @@auto_increment_offset; @@auto_increment_offset 150 INSERT INTO t1 VALUES (NULL,39), (NULL,42), (NULL,45); SELECT * FROM t1; pkey a 1 3 2 6 3 9 4 12 6 15 8 18 11 21 21 24 31 27 45 30 55 33 65 36 84 39 94 42 104 45 SET @@auto_increment_increment = @default_auto_increment_increment; SET @@auto_increment_offset = @default_auto_increment_offset; DROP TABLE t1; # Mixed mode inserts in consecutive lock mode CREATE TABLE t2( pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT ); INSERT INTO t2 VALUES (NULL,10), (12,20), (NULL,30), (NULL,40), (40,50), (NULL,60), (NULL,70); SELECT * FROM t2; pkey bb 1 10 12 20 13 30 14 40 40 50 41 60 42 70 DROP TABLE t2; # Bulk inserts in consecutive lock mode CREATE TABLE t3(cc INT); INSERT INTO t3 VALUES (10),(20),(30),(40),(50),(60),(70),(80); CREATE TABLE t4(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); INSERT INTO t4(cc) SELECT * FROM t3; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `pkey` int(11) NOT NULL AUTO_INCREMENT, `cc` int(11) DEFAULT NULL, PRIMARY KEY (`pkey`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci INSERT INTO t4(cc) SELECT * FROM t3; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `pkey` int(11) NOT NULL AUTO_INCREMENT, `cc` int(11) DEFAULT NULL, PRIMARY KEY (`pkey`) ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci DROP TABLE t4; DROP TABLE t3; # Concurrent simple inserts in consecutive lock mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT); CREATE PROCEDURE POP1() BEGIN DECLARE i INT DEFAULT 1; WHILE (i<= 10) DO INSERT INTO t1 VALUES(NULL,i); IF ( (i%2) = 0 ) THEN DELETE FROM t1 WHERE bb=i; END IF; SET i = i+1; END WHILE; END // CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 10 SET @@global.auto_increment_offset=10; SET @@global.auto_increment_increment=25; TRUNCATE TABLE t1; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 10 SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP1; DROP TABLE t1; # Concurrent bulk inserts in consecutive lock mode CREATE TABLE t2 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t1 (aa INT); CREATE PROCEDURE POP() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO t1 VALUES(i); SET i = i +1; END WHILE; INSERT INTO t2(aa) SELECT * FROM t1; END // CALL POP(); CALL POP(); SET @@global.auto_increment_offset = 16; SET @@global.auto_increment_increment = 32; TRUNCATE TABLE t1; TRUNCATE TABLE t2; CALL POP(); CALL POP(); SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP; DROP TABLE t1; DROP TABLE t2; # Concurrent mixed mode inserts in consecutive lock mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); CREATE PROCEDURE POP2(IN j INT) BEGIN DECLARE i INT DEFAULT 1; WHILE (i<=5) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES(100+j,20); WHILE(i>=5 && i<=10) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES (200+j,25); WHILE(i>=10 && i<=15) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; END // Warnings: Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead CALL POP2(1); CALL POP2(70); SELECT COUNT(*) FROM t1; COUNT(*) 34 SET @@global.auto_increment_offset = 3; SET @@global.auto_increment_increment = 4; TRUNCATE TABLE t1; CALL POP2(1); CALL POP2(80); SELECT COUNT(*) FROM t1; COUNT(*) 34 SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP2; DROP TABLE t1; # Transactions in consecutive lock mode CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 1 2 3 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 4 5 6 DROP TABLE t1; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t2(aa INT); INSERT INTO t2 VALUES(1),(2),(3),(4),(5),(6),(7); START TRANSACTION; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 1 1 2 2 3 3 4 4 5 5 6 6 7 7 ROLLBACK; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 8 1 9 2 10 3 11 4 12 5 13 6 14 7 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 1 2 3 4 23 24 25 26 27 34 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 23 24 34 35 36 37 38 39 40 41 DROP TABLE t1; # Simple, Mixed and Bulk inserts with auto increment offset in default locking mode SET @@auto_increment_offset = 17; SET @@auto_increment_increment = 40; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 17 57 97 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 137 177 217 DROP TABLE t1; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t2(aa INT); INSERT INTO t2 VALUES(1),(2),(3),(4),(5),(6),(7); START TRANSACTION; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 17 1 57 2 97 3 137 4 177 5 217 6 257 7 ROLLBACK; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 297 1 337 2 377 3 417 4 457 5 497 6 537 7 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 17 23 24 34 57 97 137 177 217 257 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 23 24 34 297 337 377 417 457 497 537 DROP TABLE t1; SET @@auto_increment_offset = @default_auto_increment_offset; SET @@auto_increment_increment = @default_auto_increment_increment; # Transactions with concurrency in consecutive locking mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT); CREATE PROCEDURE POP1() BEGIN DECLARE i INT DEFAULT 1; WHILE (i<= 10) DO INSERT INTO t1 VALUES(NULL,i); SET i = i+1; END WHILE; END // START TRANSACTION; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 20 ROLLBACK; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 30 DROP PROCEDURE POP1; DROP TABLE t1; CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); CREATE PROCEDURE POP2(IN j INT) BEGIN DECLARE i INT DEFAULT 1; WHILE (i<=5) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES(100+j,20); WHILE(i>=5 && i<=10) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES (200+j,25); WHILE(i>=10 && i<=15) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; END // Warnings: Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead START TRANSACTION; CALL POP2(1); CALL POP2(51); SELECT COUNT(*) FROM t1; COUNT(*) 34 ROLLBACK; CALL POP2(1); CALL POP2(150); SELECT COUNT(*) FROM t1; COUNT(*) 51 DROP PROCEDURE POP2; DROP TABLE t1; # Crash server in default locking mode CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE PROCEDURE POP() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO t1(aa) VALUES(i); SET i = i +1; END WHILE; END // START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_after"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=1 SELECT COUNT(*) FROM t1; COUNT(*) 10 START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_before"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=1 SELECT COUNT(*) FROM t1; COUNT(*) 10 TRUNCATE TABLE t1; SET @@auto_increment_offset = 8; SET @@auto_increment_increment = 13; START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_after"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=1 SELECT COUNT(*) FROM t1; COUNT(*) 10 START TRANSACTION; CALL POP(); SET SESSION DEBUG="+d,crash_commit_before"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=1 SELECT COUNT(*) FROM t1; COUNT(*) 10 DROP TABLE t1; DROP PROCEDURE POP; # Concurrent load inserts in consecutive lock mode CREATE TABLE loads ( pkey INT PRIMARY KEY AUTO_INCREMENT, ww CHAR(50)); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); SELECT * FROM loads; pkey ww 1 Aarhus 2 Aaron 3 Ababa 4 aback 5 abaft 6 abandon 7 abandoned 8 abandoning 9 abandonment 10 abandons 11 Aarhus 12 Aaron 13 Ababa 14 aback 15 abaft 16 abandon 17 abandoned 18 abandoning 19 abandonment 20 abandons 21 abase 22 abased 23 abasement 24 abasements 25 abases 26 abash 27 abashed 28 abashes 29 abashing 30 abasing 31 abate 32 abated 33 abatement 34 abatements 35 abater 36 abates 37 abating 38 Abba 39 abbe 40 abbey 41 abbeys 42 abbot 43 abbots 44 Abbott 45 abbreviate 46 abbreviated 47 abbreviates 48 abbreviating 49 abbreviation 50 abbreviations 51 Abby 52 abdomen 53 abdomens 54 abdominal 55 abduct 56 abducted 57 abduction 58 abductions 59 abductor 60 abductors 61 abducts 62 Abe 63 abed 64 Abel 65 Abelian 66 Abelson 67 Aberdeen 68 Abernathy 69 aberrant 70 aberration 128 Aarhus 129 Aaron 130 Ababa 131 aback 132 abaft 133 abandon 134 abandoned 135 abandoning 136 abandonment 137 abandons 138 Aarhus 139 Aaron 140 Ababa 141 aback 142 abaft 143 abandon 144 abandoned 145 abandoning 146 abandonment 147 abandons 148 abase 149 abased 150 abasement 151 abasements 152 abases 153 abash 154 abashed 155 abashes 156 abashing 157 abasing 158 abate 159 abated 160 abatement 161 abatements 162 abater 163 abates 164 abating 165 Abba 166 abbe 167 abbey 168 abbeys 169 abbot 170 abbots 171 Abbott 172 abbreviate 173 abbreviated 174 abbreviates 175 abbreviating 176 abbreviation 177 abbreviations 178 Abby 179 abdomen 180 abdomens 181 abdominal 182 abduct 183 abducted 184 abduction 185 abductions 186 abductor 187 abductors 188 abducts 189 Abe 190 abed 191 Abel 192 Abelian 193 Abelson 194 Aberdeen 195 Abernathy 196 aberrant 197 aberration SET @@global.auto_increment_offset = 12; SET @@global.auto_increment_increment = 50; TRUNCATE TABLE loads; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); SELECT * FROM loads; pkey ww 12 Aarhus 62 Aaron 112 Ababa 162 aback 212 abaft 262 abandon 312 abandoned 362 abandoning 412 abandonment 462 abandons 512 Aarhus 562 Aaron 612 Ababa 662 aback 712 abaft 762 abandon 812 abandoned 862 abandoning 912 abandonment 962 abandons 1012 abase 1062 abased 1112 abasement 1162 abasements 1212 abases 1262 abash 1312 abashed 1362 abashes 1412 abashing 1462 abasing 1512 abate 1562 abated 1612 abatement 1662 abatements 1712 abater 1762 abates 1812 abating 1862 Abba 1912 abbe 1962 abbey 2012 abbeys 2062 abbot 2112 abbots 2162 Abbott 2212 abbreviate 2262 abbreviated 2312 abbreviates 2362 abbreviating 2412 abbreviation 2462 abbreviations 2512 Abby 2562 abdomen 2612 abdomens 2662 abdominal 2712 abduct 2762 abducted 2812 abduction 2862 abductions 2912 abductor 2962 abductors 3012 abducts 3062 Abe 3112 abed 3162 Abel 3212 Abelian 3262 Abelson 3312 Aberdeen 3362 Abernathy 3412 aberrant 3462 aberration 6362 Aarhus 6412 Aaron 6462 Ababa 6512 aback 6562 abaft 6612 abandon 6662 abandoned 6712 abandoning 6762 abandonment 6812 abandons 6862 Aarhus 6912 Aaron 6962 Ababa 7012 aback 7062 abaft 7112 abandon 7162 abandoned 7212 abandoning 7262 abandonment 7312 abandons 7362 abase 7412 abased 7462 abasement 7512 abasements 7562 abases 7612 abash 7662 abashed 7712 abashes 7762 abashing 7812 abasing 7862 abate 7912 abated 7962 abatement 8012 abatements 8062 abater 8112 abates 8162 abating 8212 Abba 8262 abbe 8312 abbey 8362 abbeys 8412 abbot 8462 abbots 8512 Abbott 8562 abbreviate 8612 abbreviated 8662 abbreviates 8712 abbreviating 8762 abbreviation 8812 abbreviations 8862 Abby 8912 abdomen 8962 abdomens 9012 abdominal 9062 abduct 9112 abducted 9162 abduction 9212 abductions 9262 abductor 9312 abductors 9362 abducts 9412 Abe 9462 abed 9512 Abel 9562 Abelian 9612 Abelson 9662 Aberdeen 9712 Abernathy 9762 aberrant 9812 aberration DROP TABLE loads; # Restart server with innodb_autoinc_lock_mode = 0 # restart: --innodb_autoinc_lock_mode=0 SET @default_auto_increment_offset = @@global.auto_increment_offset; SET @default_auto_increment_increment = @@global.auto_increment_increment; SELECT @@global.innodb_autoinc_lock_mode; @@global.innodb_autoinc_lock_mode 0 # Bulk inserts in traditional lock mode CREATE TABLE t3(cc INT); INSERT INTO t3 VALUES (10),(20),(30),(40),(50),(60),(70),(80); CREATE TABLE t4(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); INSERT INTO t4(cc) SELECT * FROM t3; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `pkey` int(11) NOT NULL AUTO_INCREMENT, `cc` int(11) DEFAULT NULL, PRIMARY KEY (`pkey`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci INSERT INTO t4(cc) SELECT * FROM t3; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `pkey` int(11) NOT NULL AUTO_INCREMENT, `cc` int(11) DEFAULT NULL, PRIMARY KEY (`pkey`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci SELECT * FROM t4; pkey cc 1 10 2 20 3 30 4 40 5 50 6 60 7 70 8 80 9 10 10 20 11 30 12 40 13 50 14 60 15 70 16 80 DROP TABLE t4; DROP TABLE t3; # Concurrent simple inserts in traditional lock mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT); CREATE PROCEDURE POP1() BEGIN DECLARE i INT DEFAULT 1; WHILE (i<= 10) DO INSERT INTO t1 VALUES(NULL,i); IF ((i%2) = 0) THEN DELETE FROM t1 WHERE bb=i; END IF; SET i = i+1; END WHILE; END // CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 10 SET @@global.auto_increment_offset = 30; SET @@global.auto_increment_increment = 48; TRUNCATE TABLE t1; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 10 SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP1; DROP TABLE t1; # Concurrent bulk inserts in traditional lock mode CREATE TABLE t2 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t1 (aa INT); CREATE PROCEDURE POP() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO t1 VALUES(i); SET i = i +1; END WHILE; INSERT INTO t2(aa) SELECT * FROM t1; END // CALL POP(); CALL POP(); SET @@global.auto_increment_offset = 12; SET @@global.auto_increment_increment = 50; TRUNCATE TABLE t1; TRUNCATE TABLE t2; CALL POP(); CALL POP(); SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP; DROP TABLE t1; DROP TABLE t2; # Concurrent mixed mode inserts in traditonal lock mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); CREATE PROCEDURE POP2(IN j INT) BEGIN DECLARE i INT DEFAULT 1; WHILE (i<=5) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES(100+j,20); WHILE(i>=5 && i<=10) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES (200+j,25); WHILE(i>=10 && i<=15) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; END // Warnings: Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead CALL POP2(1); CALL POP2(50); SELECT COUNT(*) FROM t1; COUNT(*) 34 SET @@global.auto_increment_offset = 32; SET @@global.auto_increment_increment = 100; TRUNCATE TABLE t1; CALL POP2(1); CALL POP2(180); SELECT COUNT(*) FROM t1; COUNT(*) 34 SET @@global.auto_increment_offset = @default_auto_increment_offset; SET @@global.auto_increment_increment = @default_auto_increment_increment; DROP PROCEDURE POP2; DROP TABLE t1; # Transactions in traditional lock mode CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 4 5 6 DROP TABLE t1; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t2(aa INT); INSERT INTO t2 VALUES(1),(2),(3),(4),(5),(6),(7); START TRANSACTION; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 1 1 2 2 3 3 4 4 5 5 6 6 7 7 ROLLBACK; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 8 1 9 2 10 3 11 4 12 5 13 6 14 7 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 1 2 3 4 23 24 25 26 27 34 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 23 24 34 35 36 37 38 39 40 41 DROP TABLE t1; # Simple, Mixed and Bulk inserts with auto increment offset in traditional locking mode SET @@auto_increment_offset = 17; SET @@auto_increment_increment = 40; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 17 57 97 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL); SELECT * FROM t1; pkey 137 177 217 DROP TABLE t1; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE TABLE t2(aa INT); INSERT INTO t2 VALUES(1),(2),(3),(4),(5),(6),(7); START TRANSACTION; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 17 1 57 2 97 3 137 4 177 5 217 6 257 7 ROLLBACK; INSERT INTO t1(aa) SELECT * FROM t2; SELECT * FROM t1; pkey aa 297 1 337 2 377 3 417 4 457 5 497 6 537 7 DROP TABLE t1; DROP TABLE t2; CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 17 23 24 34 57 97 137 177 217 257 ROLLBACK; INSERT INTO t1 VALUES (NULL),(NULL),(NULL),(NULL); INSERT INTO t1 VALUES (23),(24); INSERT INTO t1 VALUES (NULL),(NULL),(NULL); INSERT INTO t1 VALUES (34); SELECT * FROM t1; pkey 23 24 34 297 337 377 417 457 497 537 DROP TABLE t1; SET @@auto_increment_offset = @default_auto_increment_offset; SET @@auto_increment_increment = @default_auto_increment_increment; # Transactions with concurrency in traditional locking mode CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, bb INT); CREATE PROCEDURE POP1() BEGIN DECLARE i INT DEFAULT 1; WHILE (i<= 10) DO INSERT INTO t1 VALUES(NULL,i); SET i = i+1; END WHILE; END // START TRANSACTION; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 20 ROLLBACK; CALL POP1(); CALL POP1(); SELECT COUNT(*) FROM t1; COUNT(*) 30 DROP PROCEDURE POP1; DROP TABLE t1; CREATE TABLE t1 (pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, cc INT); CREATE PROCEDURE POP2(IN j INT) BEGIN DECLARE i INT DEFAULT 1; WHILE (i<=5) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES(100+j,20); WHILE(i>=5 && i<=10) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; INSERT INTO t1 VALUES (200+j,25); WHILE(i>=10 && i<=15) DO INSERT INTO t1(cc) VALUES(i); SET i=i+1; END WHILE; END // Warnings: Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead Warning 1287 '&&' is deprecated and will be removed in a future release. Please use AND instead START TRANSACTION; CALL POP2(1); CALL POP2(120); SELECT COUNT(*) FROM t1; COUNT(*) 34 ROLLBACK; CALL POP2(1); CALL POP2(280); SELECT COUNT(*) FROM t1; COUNT(*) 51 DROP PROCEDURE POP2; DROP TABLE t1; # Crash server in traditional locking mode CREATE TABLE t1(pkey INT NOT NULL AUTO_INCREMENT PRIMARY KEY, aa INT); CREATE PROCEDURE POP() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO t1(aa) VALUES(i); SET i = i +1; END WHILE; END // START TRANSACTION; CALL POP(); # Connection 1 INSERT INTO t1(aa) VALUES (20); # Switch back to default connection SET SESSION DEBUG="+d,crash_commit_after"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=0 SELECT COUNT(*) FROM t1; COUNT(*) 11 START TRANSACTION; CALL POP(); # Connection 1 INSERT INTO t1(aa) VALUES (20); # Switch back to default connection SET SESSION DEBUG="+d,crash_commit_before"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=0 SELECT COUNT(*) FROM t1; COUNT(*) 12 TRUNCATE TABLE t1; SET @@auto_increment_offset = 15; SET @@auto_increment_increment = 30; START TRANSACTION; CALL POP(); # Connection 1 SET @@auto_increment_offset = 15; SET @@auto_increment_increment = 30; INSERT INTO t1(aa) VALUES (20); # Switch back to default connection SET SESSION DEBUG="+d,crash_commit_after"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=0 SELECT COUNT(*) FROM t1; COUNT(*) 11 SET @@auto_increment_offset = 15; SET @@auto_increment_increment = 30; START TRANSACTION; CALL POP(); # Connection 1 SET @@auto_increment_offset = 15; SET @@auto_increment_increment = 30; INSERT INTO t1(aa) VALUES (20); # Switch back to default connection SET SESSION DEBUG="+d,crash_commit_before"; CR_SERVER_LOST COMMIT; ERROR HY000: Lost connection to MySQL server during query # restart: --innodb_autoinc_lock_mode=0 SELECT COUNT(*) FROM t1; COUNT(*) 12 DROP TABLE t1; DROP PROCEDURE POP; # Concurrent load inserts in traditional lock mode CREATE TABLE loads ( pkey INT PRIMARY KEY AUTO_INCREMENT, ww CHAR(50)); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); SELECT * FROM loads; pkey ww 1 Aarhus 2 Aaron 3 Ababa 4 aback 5 abaft 6 abandon 7 abandoned 8 abandoning 9 abandonment 10 abandons 11 Aarhus 12 Aaron 13 Ababa 14 aback 15 abaft 16 abandon 17 abandoned 18 abandoning 19 abandonment 20 abandons 21 abase 22 abased 23 abasement 24 abasements 25 abases 26 abash 27 abashed 28 abashes 29 abashing 30 abasing 31 abate 32 abated 33 abatement 34 abatements 35 abater 36 abates 37 abating 38 Abba 39 abbe 40 abbey 41 abbeys 42 abbot 43 abbots 44 Abbott 45 abbreviate 46 abbreviated 47 abbreviates 48 abbreviating 49 abbreviation 50 abbreviations 51 Abby 52 abdomen 53 abdomens 54 abdominal 55 abduct 56 abducted 57 abduction 58 abductions 59 abductor 60 abductors 61 abducts 62 Abe 63 abed 64 Abel 65 Abelian 66 Abelson 67 Aberdeen 68 Abernathy 69 aberrant 70 aberration 71 Aarhus 72 Aaron 73 Ababa 74 aback 75 abaft 76 abandon 77 abandoned 78 abandoning 79 abandonment 80 abandons 81 Aarhus 82 Aaron 83 Ababa 84 aback 85 abaft 86 abandon 87 abandoned 88 abandoning 89 abandonment 90 abandons 91 abase 92 abased 93 abasement 94 abasements 95 abases 96 abash 97 abashed 98 abashes 99 abashing 100 abasing 101 abate 102 abated 103 abatement 104 abatements 105 abater 106 abates 107 abating 108 Abba 109 abbe 110 abbey 111 abbeys 112 abbot 113 abbots 114 Abbott 115 abbreviate 116 abbreviated 117 abbreviates 118 abbreviating 119 abbreviation 120 abbreviations 121 Abby 122 abdomen 123 abdomens 124 abdominal 125 abduct 126 abducted 127 abduction 128 abductions 129 abductor 130 abductors 131 abducts 132 Abe 133 abed 134 Abel 135 Abelian 136 Abelson 137 Aberdeen 138 Abernathy 139 aberrant 140 aberration SET @@global.auto_increment_offset = 12; SET @@global.auto_increment_increment = 50; TRUNCATE TABLE loads; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE loads(ww); SELECT * FROM loads; pkey ww 12 Aarhus 62 Aaron 112 Ababa 162 aback 212 abaft 262 abandon 312 abandoned 362 abandoning 412 abandonment 462 abandons 512 Aarhus 562 Aaron 612 Ababa 662 aback 712 abaft 762 abandon 812 abandoned 862 abandoning 912 abandonment 962 abandons 1012 abase 1062 abased 1112 abasement 1162 abasements 1212 abases 1262 abash 1312 abashed 1362 abashes 1412 abashing 1462 abasing 1512 abate 1562 abated 1612 abatement 1662 abatements 1712 abater 1762 abates 1812 abating 1862 Abba 1912 abbe 1962 abbey 2012 abbeys 2062 abbot 2112 abbots 2162 Abbott 2212 abbreviate 2262 abbreviated 2312 abbreviates 2362 abbreviating 2412 abbreviation 2462 abbreviations 2512 Abby 2562 abdomen 2612 abdomens 2662 abdominal 2712 abduct 2762 abducted 2812 abduction 2862 abductions 2912 abductor 2962 abductors 3012 abducts 3062 Abe 3112 abed 3162 Abel 3212 Abelian 3262 Abelson 3312 Aberdeen 3362 Abernathy 3412 aberrant 3462 aberration 3512 Aarhus 3562 Aaron 3612 Ababa 3662 aback 3712 abaft 3762 abandon 3812 abandoned 3862 abandoning 3912 abandonment 3962 abandons 4012 Aarhus 4062 Aaron 4112 Ababa 4162 aback 4212 abaft 4262 abandon 4312 abandoned 4362 abandoning 4412 abandonment 4462 abandons 4512 abase 4562 abased 4612 abasement 4662 abasements 4712 abases 4762 abash 4812 abashed 4862 abashes 4912 abashing 4962 abasing 5012 abate 5062 abated 5112 abatement 5162 abatements 5212 abater 5262 abates 5312 abating 5362 Abba 5412 abbe 5462 abbey 5512 abbeys 5562 abbot 5612 abbots 5662 Abbott 5712 abbreviate 5762 abbreviated 5812 abbreviates 5862 abbreviating 5912 abbreviation 5962 abbreviations 6012 Abby 6062 abdomen 6112 abdomens 6162 abdominal 6212 abduct 6262 abducted 6312 abduction 6362 abductions 6412 abductor 6462 abductors 6512 abducts 6562 Abe 6612 abed 6662 Abel 6712 Abelian 6762 Abelson 6812 Aberdeen 6862 Abernathy 6912 aberrant 6962 aberration DROP TABLE loads;