1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
|
SET @global_auto_increment_increment = @@global.auto_increment_increment;
SET @session_auto_increment_increment = @@session.auto_increment_increment;
SET @global_auto_increment_offset = @@global.auto_increment_offset;
SET @session_auto_increment_offset = @@session.auto_increment_offset;
drop table if exists t1;
## Creating New Table ##
CREATE TABLE t1
(
id INT NOT NULL auto_increment,
PRIMARY KEY (id),
name VARCHAR(30)
);
'#--------------------FN_DYNVARS_002_01-------------------------#'
## Setting initial value of variable to 5 ##
SET @@auto_increment_increment = 10;
SET @@auto_increment_offset = 5;
'#--------------------FN_DYNVARS_002_02-------------------------#'
## Inserting records in table and verifying variable's behavior ##
INSERT into t1(name) values('Record_1');
SELECT * from t1;
id name
5 Record_1
INSERT into t1(name) values('Record_2');
SELECT * from t1;
id name
5 Record_1
15 Record_2
## Test behavior of variable after updating value of variable ##
SET @@auto_increment_offset = 24;
SELECT @@auto_increment_offset;
@@auto_increment_offset
24
INSERT into t1(name) values('Record_3');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
INSERT into t1(name) values('Record_4');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
'#--------------------FN_DYNVARS_002_03-------------------------#'
## Changing value of global scope before opening new connection ##
SET @@global.auto_increment_increment = 15;
SET @@global.auto_increment_offset = 36;
CONNECT test_con1,localhost,root,,;
connection test_con1;
## Value of session & global vairable here should be 10 ##
SELECT @@global.auto_increment_offset = 36;
@@global.auto_increment_offset = 36
1
SELECT @@session.auto_increment_offset = 36;
@@session.auto_increment_offset = 36
1
## Verify global value effect of variable by inserting new rows in table ##
INSERT into t1(name) values('Record_5');
INSERT into t1(name) values('Record_6');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
## Setting session value of variable and inserting data in table ##
SET @@session.auto_increment_offset = 54;
INSERT into t1(name) values('Record_7');
INSERT into t1(name) values('Record_8');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
'#--------------------FN_DYNVARS_002_04-------------------------#'
## Setting value of variable less than last insert id ##
SET @@session.auto_increment_offset = 5;
INSERT into t1(name) values('Record_9');
INSERT into t1(name) values('Record_10');
INSERT into t1(name) values('Record_11');
INSERT into t1(name) values('Record_12');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
80 Record_9
95 Record_10
110 Record_11
125 Record_12
'#--------------------FN_DYNVARS_002_05-------------------------#'
## Assigning value to variable greater than auto_increment_incrent value ##
SET @@auto_increment_offset = 140;
SET @@auto_increment_increment = 10;
INSERT into t1(name) values('Record_13');
INSERT into t1(name) values('Record_14');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
80 Record_9
95 Record_10
110 Record_11
125 Record_12
134 Record_13
140 Record_14
'#--------------------FN_DYNVARS_002_06-------------------------#'
## Changing datatype of column id with primary key to SmallInt ##
ALTER table t1 modify id SMALLINT NOT NULL auto_increment;
INSERT into t1(name) values('Record_15');
INSERT into t1(name) values('Record_16');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
80 Record_9
95 Record_10
110 Record_11
125 Record_12
134 Record_13
140 Record_14
150 Record_15
160 Record_16
## Changing datatype of column id with primary key to BigInt ##
ALTER table t1 modify id BIGINT NOT NULL auto_increment;
INSERT into t1(name) values('Record_17');
INSERT into t1(name) values('Record_18');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
80 Record_9
95 Record_10
110 Record_11
125 Record_12
134 Record_13
140 Record_14
150 Record_15
160 Record_16
170 Record_17
180 Record_18
'#--------------------FN_DYNVARS_002_07-------------------------#'
## Assigning -ve value to variable ##
SET @@auto_increment_offset = -10;
Warnings:
Warning 1292 Truncated incorrect auto_increment_offset value: '-10'
SELECT @@auto_increment_offset = -10;
@@auto_increment_offset = -10
0
INSERT into t1(name) values('Record_17');
INSERT into t1(name) values('Record_18');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
80 Record_9
95 Record_10
110 Record_11
125 Record_12
134 Record_13
140 Record_14
150 Record_15
160 Record_16
170 Record_17
180 Record_18
181 Record_17
191 Record_18
## Assigning value that is out of range of variable ##
SET @@auto_increment_offset = 65536;
Warnings:
Warning 1292 Truncated incorrect auto_increment_offset value: '65536'
SELECT @@auto_increment_offset;
@@auto_increment_offset
65535
INSERT into t1(name) values('Record_17');
INSERT into t1(name) values('Record_18');
INSERT into t1(name) values('Record_19');
INSERT into t1(name) values('Record_20');
SELECT * from t1;
id name
5 Record_1
15 Record_2
24 Record_3
34 Record_4
36 Record_5
51 Record_6
54 Record_7
69 Record_8
80 Record_9
95 Record_10
110 Record_11
125 Record_12
134 Record_13
140 Record_14
150 Record_15
160 Record_16
170 Record_17
180 Record_18
181 Record_17
191 Record_18
199 Record_17
209 Record_18
219 Record_19
229 Record_20
## No effect of auto_increment_offset since value of this variable is greater ##
## than auto_increment_increment ##
## Dropping table ##
DROP table if exists t1;
disconnect test_con1;
connection default;
SET @@global.auto_increment_increment = @global_auto_increment_increment;
SET @@session.auto_increment_increment = @session_auto_increment_increment;
SET @@global.auto_increment_offset = @global_auto_increment_offset;
SET @@session.auto_increment_offset = @session_auto_increment_offset;
|