8
8
col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null,
9
9
col6 int not null, to_be_deleted int);
10
10
insert into t1 values (2,4,3,5,"PENDING",1,7);
12
col1 col2 col3 col4 col5 col6 to_be_deleted
15
12
add column col4_5 varchar(20) not null after col4,
16
13
add column col7 varchar(30) not null after col5,
17
add column col8 datetime not null default '1000-01-01 00:00:00', drop column to_be_deleted,
18
change column col2 fourth varchar(30) not null after col3,
19
modify column col6 int not null first;
20
ERROR HY000: Either a DEFAULt value or NULL NULL description is required for a new column if table is not empty
22
add column col4_5 varchar(20) DEFAULT "added" not null after col4,
23
add column col7 varchar(30) DEFAULT "added" not null after col5,
24
add column col8 datetime not null default '1000-01-01 00:00:00',
25
drop column to_be_deleted,
14
add column col8 datetime not null, drop column to_be_deleted,
26
15
change column col2 fourth varchar(30) not null after col3,
27
16
modify column col6 int not null first;
29
18
col6 col1 col3 fourth col4 col4_5 col5 col7 col8
30
1 2 3 4 5 added PENDING added 1000-01-01 00:00:00
19
1 2 3 4 5 PENDING 0000-00-00 00:00:00
32
create table t1 (bandID INT NOT NULL PRIMARY KEY, payoutID int NOT NULL);
21
create table t1 (bandID MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY, payoutID SMALLINT UNSIGNED NOT NULL);
33
22
insert into t1 (bandID,payoutID) VALUES (1,6),(2,6),(3,4),(4,9),(5,10),(6,1),(7,12),(8,12);
34
alter table t1 add column new_col int;
23
alter table t1 add column new_col int, order by payoutid,bandid;
36
25
bandID payoutID new_col
34
alter table t1 order by bandid,payoutid;
47
36
bandID payoutID new_col
80
CREATE TEMPORARY TABLE t1 (
81
id int NOT NULL default '0',
82
category_id int NOT NULL default '0',
83
type_id int NOT NULL default '0',
70
id int(11) unsigned NOT NULL default '0',
71
category_id tinyint(4) unsigned NOT NULL default '0',
72
type_id tinyint(4) unsigned NOT NULL default '0',
84
73
body text NOT NULL,
85
user_id int NOT NULL default '0',
74
user_id int(11) unsigned NOT NULL default '0',
86
75
status enum('new','old') NOT NULL default 'new',
89
78
ALTER TABLE t1 ORDER BY t1.id, t1.status, t1.type_id, t1.user_id, t1.body;
91
create table t1 (i int not null auto_increment primary key);
80
CREATE TABLE t1 (AnamneseId int(10) unsigned NOT NULL auto_increment,B BLOB,PRIMARY KEY (AnamneseId)) engine=myisam;
81
insert into t1 values (null,"hello");
83
ALTER TABLE t1 ADD Column new_col int not null;
86
Table Op Msg_type Msg_text
87
test.t1 optimize status OK
89
create table t1 (i int unsigned not null auto_increment primary key);
92
90
insert into t1 values (null),(null),(null),(null);
93
alter table t1 drop i,add i int not null auto_increment, drop primary key, add primary key (i);
91
alter table t1 drop i,add i int unsigned not null auto_increment, drop primary key, add primary key (i);
125
123
key (n2, n3, n4, n1),
126
124
key (n3, n4, n1, n2),
127
125
key (n4, n1, n2, n3) );
126
alter table t1 disable keys;
129
127
show keys from t1;
130
Table Unique Key_name Seq_in_index Column_name
128
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
129
t1 0 n1 1 n1 A 0 NULL NULL BTREE
130
t1 1 n1_2 1 n1 A NULL NULL NULL BTREE disabled
131
t1 1 n1_2 2 n2 A NULL NULL NULL YES BTREE disabled
132
t1 1 n1_2 3 n3 A NULL NULL NULL YES BTREE disabled
133
t1 1 n1_2 4 n4 A NULL NULL NULL YES BTREE disabled
134
t1 1 n2 1 n2 A NULL NULL NULL YES BTREE disabled
135
t1 1 n2 2 n3 A NULL NULL NULL YES BTREE disabled
136
t1 1 n2 3 n4 A NULL NULL NULL YES BTREE disabled
137
t1 1 n2 4 n1 A NULL NULL NULL BTREE disabled
138
t1 1 n3 1 n3 A NULL NULL NULL YES BTREE disabled
139
t1 1 n3 2 n4 A NULL NULL NULL YES BTREE disabled
140
t1 1 n3 3 n1 A NULL NULL NULL BTREE disabled
141
t1 1 n3 4 n2 A NULL NULL NULL YES BTREE disabled
142
t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled
143
t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled
144
t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled
145
t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled
150
146
insert into t1 values(10,RAND()*1000,RAND()*1000,RAND());
151
147
insert into t1 values(9,RAND()*1000,RAND()*1000,RAND());
152
148
insert into t1 values(8,RAND()*1000,RAND()*1000,RAND());
157
153
insert into t1 values(3,RAND()*1000,RAND()*1000,RAND());
158
154
insert into t1 values(2,RAND()*1000,RAND()*1000,RAND());
159
155
insert into t1 values(1,RAND()*1000,RAND()*1000,RAND());
162
156
alter table t1 enable keys;
164
Note 1031 Table storage engine for 't1' doesn't have this option
165
157
show keys from t1;
166
Table Unique Key_name Seq_in_index Column_name
158
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
159
t1 0 n1 1 n1 A 10 NULL NULL BTREE
160
t1 1 n1_2 1 n1 A 10 NULL NULL BTREE
161
t1 1 n1_2 2 n2 A 10 NULL NULL YES BTREE
162
t1 1 n1_2 3 n3 A 10 NULL NULL YES BTREE
163
t1 1 n1_2 4 n4 A 10 NULL NULL YES BTREE
164
t1 1 n2 1 n2 A 10 NULL NULL YES BTREE
165
t1 1 n2 2 n3 A 10 NULL NULL YES BTREE
166
t1 1 n2 3 n4 A 10 NULL NULL YES BTREE
167
t1 1 n2 4 n1 A 10 NULL NULL BTREE
168
t1 1 n3 1 n3 A 10 NULL NULL YES BTREE
169
t1 1 n3 2 n4 A 10 NULL NULL YES BTREE
170
t1 1 n3 3 n1 A 10 NULL NULL BTREE
171
t1 1 n3 4 n2 A 10 NULL NULL YES BTREE
172
t1 1 n4 1 n4 A 10 NULL NULL YES BTREE
173
t1 1 n4 2 n1 A 10 NULL NULL BTREE
174
t1 1 n4 3 n2 A 10 NULL NULL YES BTREE
175
t1 1 n4 4 n3 A 10 NULL NULL YES BTREE
185
create table t1 (i int not null auto_increment primary key);
177
create table t1 (i int unsigned not null auto_increment primary key);
186
178
alter table t1 rename t2;
187
179
alter table t2 rename t1, add c char(10) comment "no comment";
188
180
show columns from t1;
189
Field Type Null Default Default_is_NULL On_Update
181
Field Type Null Key Default Extra
182
i int(10) unsigned NO PRI NULL auto_increment
193
185
create table t1 (a int, b int);
196
186
insert into t1 values(1,100), (2,100), (3, 100);
197
187
insert into t1 values(1,99), (2,99), (3, 99);
198
188
insert into t1 values(1,98), (2,98), (3, 98);
293
283
insert into t1 values(1,3), (2,3), (3, 3);
294
284
insert into t1 values(1,2), (2,2), (3, 2);
295
285
insert into t1 values(1,1), (2,1), (3, 1);
298
286
alter table t1 add unique (a,b), add key (b);
299
287
show keys from t1;
300
Table Unique Key_name Seq_in_index Column_name
288
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
289
t1 0 a 1 a A NULL NULL NULL YES BTREE
290
t1 0 a 2 b A NULL NULL NULL YES BTREE
291
t1 1 b 1 b A 100 NULL NULL YES BTREE
304
292
analyze table t1;
305
293
Table Op Msg_type Msg_text
306
294
test.t1 analyze status OK
307
295
show keys from t1;
308
Table Unique Key_name Seq_in_index Column_name
313
CREATE TEMPORARY TABLE t1 (
314
Host varchar(16) NOT NULL default '',
315
User varchar(16) NOT NULL default '',
296
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
297
t1 0 a 1 a A 3 NULL NULL YES BTREE
298
t1 0 a 2 b A 300 NULL NULL YES BTREE
299
t1 1 b 1 b A 100 NULL NULL YES BTREE
301
CREATE TABLE t1 (i int(10), index(i) );
302
ALTER TABLE t1 DISABLE KEYS;
303
INSERT DELAYED INTO t1 VALUES(1),(2),(3);
304
ALTER TABLE t1 ENABLE KEYS;
307
Host varchar(16) binary NOT NULL default '',
308
User varchar(16) binary NOT NULL default '',
309
PRIMARY KEY (Host,User)
311
ALTER TABLE t1 DISABLE KEYS;
312
LOCK TABLES t1 WRITE;
313
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
315
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
316
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
317
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
318
ALTER TABLE t1 ENABLE KEYS;
321
Table Op Msg_type Msg_text
322
test.t1 check status OK
325
Host varchar(16) binary NOT NULL default '',
326
User varchar(16) binary NOT NULL default '',
316
327
PRIMARY KEY (Host,User),
319
330
ALTER TABLE t1 DISABLE KEYS;
332
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
333
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
334
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
335
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
336
LOCK TABLES t1 WRITE;
320
337
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
339
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
340
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
341
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
342
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
321
343
ALTER TABLE t1 ENABLE KEYS;
345
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
346
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
347
t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
348
t1 1 Host 1 Host A 1 NULL NULL BTREE
323
351
Table Op Msg_type Msg_text
324
352
test.t1 check status OK
353
LOCK TABLES t1 WRITE;
325
354
ALTER TABLE t1 RENAME t2;
326
356
select * from t2;
362
Host varchar(16) binary NOT NULL default '',
363
User varchar(16) binary NOT NULL default '',
364
PRIMARY KEY (Host,User),
367
LOCK TABLES t1 WRITE;
368
ALTER TABLE t1 DISABLE KEYS;
370
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
371
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
372
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
373
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
331
375
create table t1 (a int);
332
376
alter table t1 rename to ``;
333
377
ERROR 42000: Incorrect table name ''
337
381
drop table if exists t1;
339
383
Note 1051 Unknown table 't1'
340
create TEMPORARY table t1 ( a varchar(10) not null primary key ) engine=myisam;
384
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
342
386
alter table t1 modify a varchar(10);
344
388
alter table t1 modify a varchar(10) not null;
345
389
drop table if exists t1;
346
create TEMPORARY table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
347
insert into t1 (a,b,c,d,e,f,g,h,i) values(1,1,1,1,1,1,1,1,1);
390
create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
391
insert into t1 (a) values(1);
348
392
show table status like 't1';
349
Session Schema Name Type Engine Version Rows Avg_row_length Table_size Auto_increment
350
# test t1 TEMPORARY MyISAM # # # # #
393
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
394
t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
351
395
alter table t1 modify a int;
352
396
show table status like 't1';
353
Session Schema Name Type Engine Version Rows Avg_row_length Table_size Auto_increment
354
# test t1 TEMPORARY MyISAM # # # # #
397
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
398
t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
356
create TEMPORARY table t1 (a int not null default 0, b int not null default 0, c int not null default 0, d int not null default 0, e int not null default 0, f int not null default 0, g int not null default 0, h int not null default 0,i int not null default 0, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
400
create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
357
401
insert into t1 (a) values(1);
403
Warning 1364 Field 'b' doesn't have a default value
404
Warning 1364 Field 'c' doesn't have a default value
405
Warning 1364 Field 'd' doesn't have a default value
406
Warning 1364 Field 'e' doesn't have a default value
407
Warning 1364 Field 'f' doesn't have a default value
408
Warning 1364 Field 'g' doesn't have a default value
409
Warning 1364 Field 'h' doesn't have a default value
410
Warning 1364 Field 'i' doesn't have a default value
358
411
show table status like 't1';
359
Session Schema Name Type Engine Version Rows Avg_row_length Table_size Auto_increment
360
# test t1 TEMPORARY MyISAM # # # # #
412
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
413
t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
416
create table t1 (a char(10) character set koi8r);
417
insert into t1 values ('����');
418
select a,hex(a) from t1;
420
���� D4C5D3D4
421
alter table t1 change a a char(10) character set cp1251;
422
select a,hex(a) from t1;
424
���� F2E5F1F2
425
alter table t1 change a a binary(4);
426
select a,hex(a) from t1;
428
���� F2E5F1F2
429
alter table t1 change a a char(10) character set cp1251;
430
select a,hex(a) from t1;
432
���� F2E5F1F2
433
alter table t1 change a a char(10) character set koi8r;
434
select a,hex(a) from t1;
436
���� D4C5D3D4
437
alter table t1 change a a varchar(10) character set cp1251;
438
select a,hex(a) from t1;
440
���� F2E5F1F2
441
alter table t1 change a a char(10) character set koi8r;
442
select a,hex(a) from t1;
444
���� D4C5D3D4
445
alter table t1 change a a text character set cp1251;
446
select a,hex(a) from t1;
448
���� F2E5F1F2
449
alter table t1 change a a char(10) character set koi8r;
450
select a,hex(a) from t1;
452
���� D4C5D3D4
454
show create table t1;
456
t1 CREATE TABLE `t1` (
457
`a` char(10) CHARACTER SET koi8r DEFAULT NULL
458
) ENGINE=MyISAM DEFAULT CHARSET=latin1
459
alter table t1 DEFAULT CHARACTER SET latin1;
460
show create table t1;
462
t1 CREATE TABLE `t1` (
463
`a` char(10) CHARACTER SET koi8r DEFAULT NULL
464
) ENGINE=MyISAM DEFAULT CHARSET=latin1
465
alter table t1 CONVERT TO CHARACTER SET latin1;
466
show create table t1;
468
t1 CREATE TABLE `t1` (
469
`a` char(10) DEFAULT NULL
470
) ENGINE=MyISAM DEFAULT CHARSET=latin1
471
alter table t1 DEFAULT CHARACTER SET cp1251;
472
show create table t1;
474
t1 CREATE TABLE `t1` (
475
`a` char(10) CHARACTER SET latin1 DEFAULT NULL
476
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
478
create table t1 (myblob longblob,mytext longtext)
479
default charset latin1 collate latin1_general_cs;
480
show create table t1;
482
t1 CREATE TABLE `t1` (
484
`mytext` longtext COLLATE latin1_general_cs
485
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs
486
alter table t1 character set latin2;
487
show create table t1;
489
t1 CREATE TABLE `t1` (
491
`mytext` longtext CHARACTER SET latin1 COLLATE latin1_general_cs
492
) ENGINE=MyISAM DEFAULT CHARSET=latin2
362
494
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
363
495
ALTER TABLE t1 DROP PRIMARY KEY;
364
496
SHOW CREATE TABLE t1;
365
497
Table Create Table
366
498
t1 CREATE TABLE `t1` (
368
`b` INT DEFAULT NULL,
499
`a` int(11) NOT NULL,
500
`b` int(11) DEFAULT NULL,
369
501
UNIQUE KEY `b` (`b`)
370
) ENGINE=DEFAULT COLLATE = utf8_general_ci
502
) ENGINE=MyISAM DEFAULT CHARSET=latin1
371
503
ALTER TABLE t1 DROP PRIMARY KEY;
372
504
ERROR 42000: Can't DROP 'PRIMARY'; check that column/key exists
388
530
drop table if exists t1;
389
531
create table t1 (a int, key(a));
390
532
show indexes from t1;
391
Table Unique Key_name Seq_in_index Column_name
533
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
534
t1 1 a 1 a A NULL NULL NULL YES BTREE
393
535
"this used not to disable the index"
394
alter table t1 modify a int;
395
show indexes from t1;
396
Table Unique Key_name Seq_in_index Column_name
398
alter table t1 enable keys;
400
Note 1031 Table storage engine for 't1' doesn't have this option
401
show indexes from t1;
402
Table Unique Key_name Seq_in_index Column_name
404
alter table t1 modify a bigint;
405
show indexes from t1;
406
Table Unique Key_name Seq_in_index Column_name
408
alter table t1 enable keys;
410
Note 1031 Table storage engine for 't1' doesn't have this option
411
show indexes from t1;
412
Table Unique Key_name Seq_in_index Column_name
414
alter table t1 add b char(10);
415
show indexes from t1;
416
Table Unique Key_name Seq_in_index Column_name
418
alter table t1 add c decimal(10,2);
419
show indexes from t1;
420
Table Unique Key_name Seq_in_index Column_name
536
alter table t1 modify a int, disable keys;
537
show indexes from t1;
538
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
539
t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
540
alter table t1 enable keys;
541
show indexes from t1;
542
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
543
t1 1 a 1 a A NULL NULL NULL YES BTREE
544
alter table t1 modify a bigint, disable keys;
545
show indexes from t1;
546
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
547
t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
548
alter table t1 enable keys;
549
show indexes from t1;
550
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
551
t1 1 a 1 a A NULL NULL NULL YES BTREE
552
alter table t1 add b char(10), disable keys;
553
show indexes from t1;
554
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
555
t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
556
alter table t1 add c decimal(10,2), enable keys;
557
show indexes from t1;
558
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
559
t1 1 a 1 a A NULL NULL NULL YES BTREE
422
560
"this however did"
561
alter table t1 disable keys;
424
562
show indexes from t1;
425
Table Unique Key_name Seq_in_index Column_name
563
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
564
t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
428
Field Type Null Default Default_is_NULL On_Update
566
Field Type Null Key Default Extra
567
a bigint(20) YES MUL NULL
569
c decimal(10,2) YES NULL
432
570
alter table t1 add d decimal(15,5);
433
571
"The key should still be disabled"
434
572
show indexes from t1;
435
Table Unique Key_name Seq_in_index Column_name
573
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
574
t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
438
576
"Now will test with one unique index"
439
577
create table t1(a int, b char(10), unique(a));
440
578
show indexes from t1;
441
Table Unique Key_name Seq_in_index Column_name
579
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
580
t1 0 a 1 a A NULL NULL NULL YES BTREE
581
alter table t1 disable keys;
444
582
show indexes from t1;
445
Table Unique Key_name Seq_in_index Column_name
583
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
584
t1 0 a 1 a A NULL NULL NULL YES BTREE
447
585
alter table t1 enable keys;
449
Note 1031 Table storage engine for 't1' doesn't have this option
450
586
"If no copy on noop change, this won't touch the data file"
451
587
"Unique index, no change"
452
alter table t1 modify a int;
588
alter table t1 modify a int, disable keys;
453
589
show indexes from t1;
454
Table Unique Key_name Seq_in_index Column_name
590
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
591
t1 0 a 1 a A NULL NULL NULL YES BTREE
456
592
"Change the type implying data copy"
457
593
"Unique index, no change"
458
alter table t1 modify a bigint;
459
show indexes from t1;
460
Table Unique Key_name Seq_in_index Column_name
462
alter table t1 modify a bigint;
463
show indexes from t1;
464
Table Unique Key_name Seq_in_index Column_name
594
alter table t1 modify a bigint, disable keys;
595
show indexes from t1;
596
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
597
t1 0 a 1 a A NULL NULL NULL YES BTREE
598
alter table t1 modify a bigint;
599
show indexes from t1;
600
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
601
t1 0 a 1 a A NULL NULL NULL YES BTREE
466
602
alter table t1 modify a int;
467
603
show indexes from t1;
468
Table Unique Key_name Seq_in_index Column_name
604
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
605
t1 0 a 1 a A NULL NULL NULL YES BTREE
471
607
"Now will test with one unique and one non-unique index"
472
608
create table t1(a int, b char(10), unique(a), key(b));
473
609
show indexes from t1;
474
Table Unique Key_name Seq_in_index Column_name
610
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
611
t1 0 a 1 a A NULL NULL NULL YES BTREE
612
t1 1 b 1 b A NULL NULL NULL YES BTREE
613
alter table t1 disable keys;
478
614
show indexes from t1;
479
Table Unique Key_name Seq_in_index Column_name
615
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
616
t1 0 a 1 a A NULL NULL NULL YES BTREE
617
t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
482
618
alter table t1 enable keys;
484
Note 1031 Table storage engine for 't1' doesn't have this option
485
619
"If no copy on noop change, this won't touch the data file"
486
620
"The non-unique index will be disabled"
487
alter table t1 modify a int;
621
alter table t1 modify a int, disable keys;
488
622
show indexes from t1;
489
Table Unique Key_name Seq_in_index Column_name
623
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
624
t1 0 a 1 a A NULL NULL NULL YES BTREE
625
t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
492
626
alter table t1 enable keys;
494
Note 1031 Table storage engine for 't1' doesn't have this option
495
627
show indexes from t1;
496
Table Unique Key_name Seq_in_index Column_name
628
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
629
t1 0 a 1 a A NULL NULL NULL YES BTREE
630
t1 1 b 1 b A NULL NULL NULL YES BTREE
499
631
"Change the type implying data copy"
500
632
"The non-unique index will be disabled"
501
alter table t1 modify a bigint;
633
alter table t1 modify a bigint, disable keys;
502
634
show indexes from t1;
503
Table Unique Key_name Seq_in_index Column_name
635
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
636
t1 0 a 1 a A NULL NULL NULL YES BTREE
637
t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
506
638
"Change again the type, but leave the indexes as_is"
507
639
alter table t1 modify a int;
508
640
show indexes from t1;
509
Table Unique Key_name Seq_in_index Column_name
641
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
642
t1 0 a 1 a A NULL NULL NULL YES BTREE
643
t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
512
644
"Try the same. When data is no copied on similar tables, this is noop"
513
645
alter table t1 modify a int;
514
646
show indexes from t1;
515
Table Unique Key_name Seq_in_index Column_name
647
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
648
t1 0 a 1 a A NULL NULL NULL YES BTREE
649
t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
519
651
create database mysqltest;
520
652
create table t1 (c1 int);
528
660
drop database mysqltest;
529
661
alter table test.t1 rename t1;
530
ERROR 3D000: No schema selected
662
ERROR 3D000: No database selected
531
663
alter table test.t1 rename test.t1;
534
CREATE TABLE t1(a INT) ROW_FORMAT=COMPACT;
666
CREATE TABLE t1(a INT) ROW_FORMAT=FIXED;
535
667
CREATE INDEX i1 ON t1(a);
536
668
SHOW CREATE TABLE t1;
537
669
Table Create Table
538
670
t1 CREATE TABLE `t1` (
539
`a` INT DEFAULT NULL,
671
`a` int(11) DEFAULT NULL,
541
) ENGINE=DEFAULT ROW_FORMAT='COMPACT' COLLATE = utf8_general_ci
673
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
542
674
DROP INDEX i1 ON t1;
543
675
SHOW CREATE TABLE t1;
544
676
Table Create Table
545
677
t1 CREATE TABLE `t1` (
547
) ENGINE=DEFAULT ROW_FORMAT='COMPACT' COLLATE = utf8_general_ci
678
`a` int(11) DEFAULT NULL
679
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
549
681
DROP TABLE IF EXISTS bug24219;
550
682
DROP TABLE IF EXISTS bug24219_2;
551
683
CREATE TABLE bug24219 (a INT, INDEX(a));
552
684
SHOW INDEX FROM bug24219;
553
Table Unique Key_name Seq_in_index Column_name
685
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
686
bug24219 1 a 1 a A NULL NULL NULL YES BTREE
555
687
ALTER TABLE bug24219 RENAME TO bug24219_2, DISABLE KEYS;
557
Note 1031 Table storage engine for 'bug24219' doesn't have this option
558
688
SHOW INDEX FROM bug24219_2;
559
Table Unique Key_name Seq_in_index Column_name
689
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
690
bug24219_2 1 a 1 a A NULL NULL NULL YES BTREE disabled
561
691
DROP TABLE bug24219_2;
562
692
drop table if exists table_24562;
563
693
create table table_24562(
746
897
alter table t1 change i i bigint;
747
898
select * from t1;
753
904
alter table t1 add unique key (i, v);
754
905
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
758
create TEMPORARY table t1 (t varchar(255) default null, key t (t(80))) engine=myisam;
909
create table t1 (t varchar(255) default null, key t (t(80)))
910
engine=myisam default charset=latin1;
759
911
alter table t1 change t t text;
761
CREATE TABLE t1 (s CHAR(8));
762
INSERT INTO t1 VALUES ('test');
763
SELECT LENGTH(s) FROM t1;
766
ALTER TABLE t1 MODIFY s CHAR(10);
767
SELECT LENGTH(s) FROM t1;
771
CREATE TABLE t1 (s varbinary(8));
772
INSERT INTO t1 VALUES ('test');
773
SELECT LENGTH(s) FROM t1;
776
SELECT HEX(s) FROM t1;
779
ALTER TABLE t1 MODIFY s varbinary(10);
780
SELECT HEX(s) FROM t1;
783
SELECT LENGTH(s) FROM t1;
913
CREATE TABLE t1 (a varchar(500));
914
ALTER TABLE t1 ADD b GEOMETRY NOT NULL, ADD SPATIAL INDEX(b);
915
SHOW CREATE TABLE t1;
917
t1 CREATE TABLE `t1` (
918
`a` varchar(500) DEFAULT NULL,
919
`b` geometry NOT NULL,
920
SPATIAL KEY `b` (`b`)
921
) ENGINE=MyISAM DEFAULT CHARSET=latin1
922
ALTER TABLE t1 ADD KEY(b(50));
923
SHOW CREATE TABLE t1;
925
t1 CREATE TABLE `t1` (
926
`a` varchar(500) DEFAULT NULL,
927
`b` geometry NOT NULL,
928
SPATIAL KEY `b` (`b`),
930
) ENGINE=MyISAM DEFAULT CHARSET=latin1
931
ALTER TABLE t1 ADD c POINT;
932
SHOW CREATE TABLE t1;
934
t1 CREATE TABLE `t1` (
935
`a` varchar(500) DEFAULT NULL,
936
`b` geometry NOT NULL,
937
`c` point DEFAULT NULL,
938
SPATIAL KEY `b` (`b`),
940
) ENGINE=MyISAM DEFAULT CHARSET=latin1
941
CREATE TABLE t2 (a INT, KEY (a(20)));
942
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
943
ALTER TABLE t1 ADD d INT;
944
ALTER TABLE t1 ADD KEY (d(20));
945
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
946
ALTER TABLE t1 ADD e GEOMETRY NOT NULL, ADD SPATIAL KEY (e(30));
947
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
949
CREATE TABLE t1 (s CHAR(8) BINARY);
950
INSERT INTO t1 VALUES ('test');
951
SELECT LENGTH(s) FROM t1;
954
ALTER TABLE t1 MODIFY s CHAR(10) BINARY;
955
SELECT LENGTH(s) FROM t1;
959
CREATE TABLE t1 (s BINARY(8));
960
INSERT INTO t1 VALUES ('test');
961
SELECT LENGTH(s) FROM t1;
964
SELECT HEX(s) FROM t1;
967
ALTER TABLE t1 MODIFY s BINARY(10);
968
SELECT HEX(s) FROM t1;
971
SELECT LENGTH(s) FROM t1;
787
975
CREATE TABLE t1 (v VARCHAR(3), b INT);
788
976
INSERT INTO t1 VALUES ('abc', 5);
986
drop table if exists t1, t2, t3;
987
create table t1 (i int);
988
create table t3 (j int);
989
insert into t1 values ();
990
insert into t3 values ();
991
lock table t1 write, t3 read;
992
alter table t1 modify i int default 1;
993
insert into t1 values ();
998
alter table t1 change i c char(10) default "Two";
999
insert into t1 values ();
1005
alter table t1 modify c char(10) default "Three", rename to t2;
1007
ERROR HY000: Table 't1' was not locked with LOCK TABLES
1009
ERROR HY000: Table 't2' was not locked with LOCK TABLES
1014
insert into t2 values ();
1021
lock table t2 write, t3 read;
1022
alter table t2 change c vc varchar(100) default "Four", rename to t1;
1024
ERROR HY000: Table 't1' was not locked with LOCK TABLES
1026
ERROR HY000: Table 't2' was not locked with LOCK TABLES
1031
insert into t1 values ();
798
1040
DROP TABLE IF EXISTS `t+1`, `t+2`;
799
1041
CREATE TABLE `t+1` (c1 INT);
800
1042
ALTER TABLE `t+1` RENAME `t+2`;
801
1043
CREATE TABLE `t+1` (c1 INT);
802
1044
ALTER TABLE `t+1` RENAME `t+2`;
803
ERROR 42S01: Table 'test.t+2' already exists
1045
ERROR 42S01: Table 't+2' already exists
804
1046
DROP TABLE `t+1`, `t+2`;
805
1047
CREATE TEMPORARY TABLE `tt+1` (c1 INT);
806
1048
ALTER TABLE `tt+1` RENAME `tt+2`;
807
1049
CREATE TEMPORARY TABLE `tt+1` (c1 INT);
808
1050
ALTER TABLE `tt+1` RENAME `tt+2`;
809
ERROR 42S01: Table 'test.#tt+2' already exists
1051
ERROR 42S01: Table 'tt+2' already exists
810
1052
SHOW CREATE TABLE `tt+1`;
811
1053
Table Create Table
812
1054
tt+1 CREATE TEMPORARY TABLE `tt+1` (
813
`c1` INT DEFAULT NULL
814
) ENGINE=DEFAULT COLLATE = utf8_general_ci
1055
`c1` int(11) DEFAULT NULL
1056
) ENGINE=MyISAM DEFAULT CHARSET=latin1
815
1057
SHOW CREATE TABLE `tt+2`;
816
1058
Table Create Table
817
1059
tt+2 CREATE TEMPORARY TABLE `tt+2` (
818
`c1` INT DEFAULT NULL
819
) ENGINE=DEFAULT COLLATE = utf8_general_ci
1060
`c1` int(11) DEFAULT NULL
1061
) ENGINE=MyISAM DEFAULT CHARSET=latin1
820
1062
DROP TABLE `tt+1`, `tt+2`;
1063
CREATE TABLE `#sql1` (c1 INT);
1064
CREATE TABLE `@0023sql2` (c1 INT);
1069
RENAME TABLE `#sql1` TO `@0023sql1`;
1070
RENAME TABLE `@0023sql2` TO `#sql2`;
1075
ALTER TABLE `@0023sql1` RENAME `#sql-1`;
1076
ALTER TABLE `#sql2` RENAME `@0023sql-2`;
1081
INSERT INTO `#sql-1` VALUES (1);
1082
INSERT INTO `@0023sql-2` VALUES (2);
1083
DROP TABLE `#sql-1`, `@0023sql-2`;
821
1084
CREATE TEMPORARY TABLE `#sql1` (c1 INT);
822
1085
CREATE TEMPORARY TABLE `@0023sql2` (c1 INT);
827
1088
ALTER TABLE `#sql1` RENAME `@0023sql1`;
828
1089
ALTER TABLE `@0023sql2` RENAME `#sql2`;
833
1092
INSERT INTO `#sql2` VALUES (1);
834
1093
INSERT INTO `@0023sql1` VALUES (2);
835
1094
SHOW CREATE TABLE `#sql2`;
836
1095
Table Create Table
837
1096
#sql2 CREATE TEMPORARY TABLE `#sql2` (
838
`c1` INT DEFAULT NULL
839
) ENGINE=DEFAULT COLLATE = utf8_general_ci
1097
`c1` int(11) DEFAULT NULL
1098
) ENGINE=MyISAM DEFAULT CHARSET=latin1
840
1099
SHOW CREATE TABLE `@0023sql1`;
841
1100
Table Create Table
842
1101
@0023sql1 CREATE TEMPORARY TABLE `@0023sql1` (
843
`c1` INT DEFAULT NULL
844
) ENGINE=DEFAULT COLLATE = utf8_general_ci
1102
`c1` int(11) DEFAULT NULL
1103
) ENGINE=MyISAM DEFAULT CHARSET=latin1
845
1104
DROP TABLE `#sql2`, `@0023sql1`;
846
1105
DROP TABLE IF EXISTS t1;
847
1106
DROP TABLE IF EXISTS t2;
848
1107
CREATE TABLE t1 (
849
int_field INTEGER NOT NULL,
1108
int_field INTEGER UNSIGNED NOT NULL,
850
1109
char_field CHAR(10),
851
1110
INDEX(`int_field`)
854
Field Type Null Default Default_is_NULL On_Update
855
int_field INTEGER NO NO
856
char_field VARCHAR YES YES
1113
Field Type Null Key Default Extra
1114
int_field int(10) unsigned NO MUL NULL
1115
char_field char(10) YES NULL
857
1116
SHOW INDEXES FROM t1;
858
Table Unique Key_name Seq_in_index Column_name
859
t1 NO int_field 1 int_field
1117
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_Comment
1118
t1 1 int_field 1 int_field A NULL NULL NULL BTREE
860
1119
INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet");
861
1120
"Non-copy data change - new frm, but old data and index files"
862
ALTER TABLE t1 CHANGE int_field unsigned_int_field INTEGER NOT NULL, RENAME t2;
1122
CHANGE int_field unsigned_int_field INTEGER UNSIGNED NOT NULL,
863
1124
SELECT * FROM t1 ORDER BY int_field;
864
1125
ERROR 42S02: Table 'test.t1' doesn't exist
865
1126
SELECT * FROM t2 ORDER BY unsigned_int_field;