alter_table.result 25.9 KB
Newer Older
1
drop table if exists t1,t2;
unknown's avatar
unknown committed
2
drop database if exists mysqltest;
unknown's avatar
unknown committed
3 4 5 6 7 8 9
create table t1 (
col1 int not null auto_increment primary key,
col2 varchar(30) not null,
col3 varchar (20) not null,
col4 varchar(4) not null,
col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null,
col6 int not null, to_be_deleted int);
10
insert into t1 values (2,4,3,5,"PENDING",1,7);
unknown's avatar
unknown committed
11 12
alter table t1
add column col4_5 varchar(20) not null after col4,
13 14 15 16 17 18 19
add column col7 varchar(30) not null after col5,
add column col8 datetime not null, drop column to_be_deleted,
change column col2 fourth varchar(30) not null after col3,
modify column col6 int not null first;
select * from t1;
col6	col1	col3	fourth	col4	col4_5	col5	col7	col8
1	2	3	4	5		PENDING		0000-00-00 00:00:00
unknown's avatar
unknown committed
20 21 22 23 24
drop table t1;
create table t1 (bandID MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY, payoutID SMALLINT UNSIGNED NOT NULL);
insert into t1 (bandID,payoutID) VALUES (1,6),(2,6),(3,4),(4,9),(5,10),(6,1),(7,12),(8,12);
alter table t1 add column new_col int, order by payoutid,bandid;
select * from t1;
25 26 27 28 29 30 31 32 33
bandID	payoutID	new_col
6	1	NULL
3	4	NULL
1	6	NULL
2	6	NULL
4	9	NULL
5	10	NULL
7	12	NULL
8	12	NULL
unknown's avatar
unknown committed
34 35
alter table t1 order by bandid,payoutid;
select * from t1;
36 37 38 39 40 41 42 43 44
bandID	payoutID	new_col
1	6	NULL
2	6	NULL
3	4	NULL
4	9	NULL
5	10	NULL
6	1	NULL
7	12	NULL
8	12	NULL
unknown's avatar
unknown committed
45 46 47 48 49 50 51 52 53
drop table t1;
CREATE TABLE t1 (
GROUP_ID int(10) unsigned DEFAULT '0' NOT NULL,
LANG_ID smallint(5) unsigned DEFAULT '0' NOT NULL,
NAME varchar(80) DEFAULT '' NOT NULL,
PRIMARY KEY (GROUP_ID,LANG_ID),
KEY NAME (NAME));
ALTER TABLE t1 CHANGE NAME NAME CHAR(80) not null;
SHOW FULL COLUMNS FROM t1;
54
Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
55 56 57
GROUP_ID	int(10) unsigned	NULL		PRI	0		#	
LANG_ID	smallint(5) unsigned	NULL		PRI	0		#	
NAME	char(80)	latin1_swedish_ci		MUL			#	
unknown's avatar
unknown committed
58 59 60 61 62
DROP TABLE t1;
create table t1 (n int);
insert into t1 values(9),(3),(12),(10);
alter table t1 order by n;
select * from t1;
63 64 65 66 67
n
3
9
10
12
unknown's avatar
unknown committed
68 69 70 71 72 73 74 75 76
drop table t1;
CREATE TABLE t1 (
id int(11) unsigned NOT NULL default '0',
category_id tinyint(4) unsigned NOT NULL default '0',
type_id tinyint(4) unsigned NOT NULL default '0',
body text NOT NULL,
user_id int(11) unsigned NOT NULL default '0',
status enum('new','old') NOT NULL default 'new',
PRIMARY KEY (id)
unknown's avatar
unknown committed
77
) ENGINE=MyISAM;
unknown's avatar
unknown committed
78 79
ALTER TABLE t1 ORDER BY t1.id, t1.status, t1.type_id, t1.user_id, t1.body;
DROP TABLE t1;
unknown's avatar
unknown committed
80
CREATE TABLE t1 (AnamneseId int(10) unsigned NOT NULL auto_increment,B BLOB,PRIMARY KEY (AnamneseId)) engine=myisam;
unknown's avatar
unknown committed
81 82 83 84 85
insert into t1 values (null,"hello");
LOCK TABLES t1 WRITE;
ALTER TABLE t1 ADD Column new_col int not null;
UNLOCK TABLES;
OPTIMIZE TABLE t1;
unknown's avatar
unknown committed
86 87
Table	Op	Msg_type	Msg_text
test.t1	optimize	status	OK
unknown's avatar
unknown committed
88
DROP TABLE t1;
unknown's avatar
unknown committed
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
create table t1 (i int unsigned not null auto_increment primary key);
insert into t1 values (null),(null),(null),(null);
alter table t1 drop i,add i int unsigned not null auto_increment, drop primary key, add primary key (i);
select * from t1;
i
1
2
3
4
drop table t1;
create table t1 (name char(15));
insert into t1 (name) values ("current");
create database mysqltest;
create table mysqltest.t1 (name char(15));
insert into mysqltest.t1 (name) values ("mysqltest");
select * from t1;
name
current
select * from mysqltest.t1;
name
mysqltest
alter table t1 rename mysqltest.t1;
unknown's avatar
unknown committed
111
ERROR 42S01: Table 't1' already exists
unknown's avatar
unknown committed
112 113 114 115 116 117 118 119
select * from t1;
name
current
select * from mysqltest.t1;
name
mysqltest
drop table t1;
drop database mysqltest;
unknown's avatar
unknown committed
120 121 122 123 124 125 126
create table t1 (n1 int not null, n2 int, n3 int, n4 float,
unique(n1),
key (n1, n2, n3, n4),
key (n2, n3, n4, n1),
key (n3, n4, n1, n2),
key (n4, n1, n2, n3) );
alter table t1 disable keys;
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
show keys from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	n1	1	n1	A	0	NULL	NULL		BTREE	
t1	1	n1_2	1	n1	A	NULL	NULL	NULL		BTREE	disabled
t1	1	n1_2	2	n2	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n1_2	3	n3	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n1_2	4	n4	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n2	1	n2	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n2	2	n3	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n2	3	n4	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n2	4	n1	A	NULL	NULL	NULL		BTREE	disabled
t1	1	n3	1	n3	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n3	2	n4	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n3	3	n1	A	NULL	NULL	NULL		BTREE	disabled
t1	1	n3	4	n2	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n4	1	n4	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n4	2	n1	A	NULL	NULL	NULL		BTREE	disabled
t1	1	n4	3	n2	A	NULL	NULL	NULL	YES	BTREE	disabled
t1	1	n4	4	n3	A	NULL	NULL	NULL	YES	BTREE	disabled
unknown's avatar
unknown committed
146 147 148 149 150 151 152 153 154 155
insert into t1 values(10,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(9,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(8,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(7,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(6,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(5,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(4,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(3,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(2,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(1,RAND()*1000,RAND()*1000,RAND());
unknown's avatar
unknown committed
156
alter table t1 enable keys;
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
show keys from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	n1	1	n1	A	10	NULL	NULL		BTREE	
t1	1	n1_2	1	n1	A	10	NULL	NULL		BTREE	
t1	1	n1_2	2	n2	A	10	NULL	NULL	YES	BTREE	
t1	1	n1_2	3	n3	A	10	NULL	NULL	YES	BTREE	
t1	1	n1_2	4	n4	A	10	NULL	NULL	YES	BTREE	
t1	1	n2	1	n2	A	10	NULL	NULL	YES	BTREE	
t1	1	n2	2	n3	A	10	NULL	NULL	YES	BTREE	
t1	1	n2	3	n4	A	10	NULL	NULL	YES	BTREE	
t1	1	n2	4	n1	A	10	NULL	NULL		BTREE	
t1	1	n3	1	n3	A	10	NULL	NULL	YES	BTREE	
t1	1	n3	2	n4	A	10	NULL	NULL	YES	BTREE	
t1	1	n3	3	n1	A	10	NULL	NULL		BTREE	
t1	1	n3	4	n2	A	10	NULL	NULL	YES	BTREE	
t1	1	n4	1	n4	A	10	NULL	NULL	YES	BTREE	
t1	1	n4	2	n1	A	10	NULL	NULL		BTREE	
t1	1	n4	3	n2	A	10	NULL	NULL	YES	BTREE	
t1	1	n4	4	n3	A	10	NULL	NULL	YES	BTREE	
unknown's avatar
unknown committed
176 177
drop table t1;
create table t1 (i int unsigned not null auto_increment primary key);
178 179 180
alter table t1 rename t2;
alter table t2 rename t1, add c char(10) comment "no comment";
show columns from t1;
181 182 183
Field	Type	Null	Key	Default	Extra
i	int(10) unsigned		PRI	NULL	auto_increment
c	char(10)	YES		NULL	
unknown's avatar
unknown committed
184
drop table t1;
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 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
create table t1 (a int, b int);
insert into t1 values(1,100), (2,100), (3, 100);
insert into t1 values(1,99), (2,99), (3, 99);
insert into t1 values(1,98), (2,98), (3, 98);
insert into t1 values(1,97), (2,97), (3, 97);
insert into t1 values(1,96), (2,96), (3, 96);
insert into t1 values(1,95), (2,95), (3, 95);
insert into t1 values(1,94), (2,94), (3, 94);
insert into t1 values(1,93), (2,93), (3, 93);
insert into t1 values(1,92), (2,92), (3, 92);
insert into t1 values(1,91), (2,91), (3, 91);
insert into t1 values(1,90), (2,90), (3, 90);
insert into t1 values(1,89), (2,89), (3, 89);
insert into t1 values(1,88), (2,88), (3, 88);
insert into t1 values(1,87), (2,87), (3, 87);
insert into t1 values(1,86), (2,86), (3, 86);
insert into t1 values(1,85), (2,85), (3, 85);
insert into t1 values(1,84), (2,84), (3, 84);
insert into t1 values(1,83), (2,83), (3, 83);
insert into t1 values(1,82), (2,82), (3, 82);
insert into t1 values(1,81), (2,81), (3, 81);
insert into t1 values(1,80), (2,80), (3, 80);
insert into t1 values(1,79), (2,79), (3, 79);
insert into t1 values(1,78), (2,78), (3, 78);
insert into t1 values(1,77), (2,77), (3, 77);
insert into t1 values(1,76), (2,76), (3, 76);
insert into t1 values(1,75), (2,75), (3, 75);
insert into t1 values(1,74), (2,74), (3, 74);
insert into t1 values(1,73), (2,73), (3, 73);
insert into t1 values(1,72), (2,72), (3, 72);
insert into t1 values(1,71), (2,71), (3, 71);
insert into t1 values(1,70), (2,70), (3, 70);
insert into t1 values(1,69), (2,69), (3, 69);
insert into t1 values(1,68), (2,68), (3, 68);
insert into t1 values(1,67), (2,67), (3, 67);
insert into t1 values(1,66), (2,66), (3, 66);
insert into t1 values(1,65), (2,65), (3, 65);
insert into t1 values(1,64), (2,64), (3, 64);
insert into t1 values(1,63), (2,63), (3, 63);
insert into t1 values(1,62), (2,62), (3, 62);
insert into t1 values(1,61), (2,61), (3, 61);
insert into t1 values(1,60), (2,60), (3, 60);
insert into t1 values(1,59), (2,59), (3, 59);
insert into t1 values(1,58), (2,58), (3, 58);
insert into t1 values(1,57), (2,57), (3, 57);
insert into t1 values(1,56), (2,56), (3, 56);
insert into t1 values(1,55), (2,55), (3, 55);
insert into t1 values(1,54), (2,54), (3, 54);
insert into t1 values(1,53), (2,53), (3, 53);
insert into t1 values(1,52), (2,52), (3, 52);
insert into t1 values(1,51), (2,51), (3, 51);
insert into t1 values(1,50), (2,50), (3, 50);
insert into t1 values(1,49), (2,49), (3, 49);
insert into t1 values(1,48), (2,48), (3, 48);
insert into t1 values(1,47), (2,47), (3, 47);
insert into t1 values(1,46), (2,46), (3, 46);
insert into t1 values(1,45), (2,45), (3, 45);
insert into t1 values(1,44), (2,44), (3, 44);
insert into t1 values(1,43), (2,43), (3, 43);
insert into t1 values(1,42), (2,42), (3, 42);
insert into t1 values(1,41), (2,41), (3, 41);
insert into t1 values(1,40), (2,40), (3, 40);
insert into t1 values(1,39), (2,39), (3, 39);
insert into t1 values(1,38), (2,38), (3, 38);
insert into t1 values(1,37), (2,37), (3, 37);
insert into t1 values(1,36), (2,36), (3, 36);
insert into t1 values(1,35), (2,35), (3, 35);
insert into t1 values(1,34), (2,34), (3, 34);
insert into t1 values(1,33), (2,33), (3, 33);
insert into t1 values(1,32), (2,32), (3, 32);
insert into t1 values(1,31), (2,31), (3, 31);
insert into t1 values(1,30), (2,30), (3, 30);
insert into t1 values(1,29), (2,29), (3, 29);
insert into t1 values(1,28), (2,28), (3, 28);
insert into t1 values(1,27), (2,27), (3, 27);
insert into t1 values(1,26), (2,26), (3, 26);
insert into t1 values(1,25), (2,25), (3, 25);
insert into t1 values(1,24), (2,24), (3, 24);
insert into t1 values(1,23), (2,23), (3, 23);
insert into t1 values(1,22), (2,22), (3, 22);
insert into t1 values(1,21), (2,21), (3, 21);
insert into t1 values(1,20), (2,20), (3, 20);
insert into t1 values(1,19), (2,19), (3, 19);
insert into t1 values(1,18), (2,18), (3, 18);
insert into t1 values(1,17), (2,17), (3, 17);
insert into t1 values(1,16), (2,16), (3, 16);
insert into t1 values(1,15), (2,15), (3, 15);
insert into t1 values(1,14), (2,14), (3, 14);
insert into t1 values(1,13), (2,13), (3, 13);
insert into t1 values(1,12), (2,12), (3, 12);
insert into t1 values(1,11), (2,11), (3, 11);
insert into t1 values(1,10), (2,10), (3, 10);
insert into t1 values(1,9), (2,9), (3, 9);
insert into t1 values(1,8), (2,8), (3, 8);
insert into t1 values(1,7), (2,7), (3, 7);
insert into t1 values(1,6), (2,6), (3, 6);
insert into t1 values(1,5), (2,5), (3, 5);
insert into t1 values(1,4), (2,4), (3, 4);
insert into t1 values(1,3), (2,3), (3, 3);
insert into t1 values(1,2), (2,2), (3, 2);
insert into t1 values(1,1), (2,1), (3, 1);
alter table t1 add unique (a,b), add key (b);
show keys from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	0	a	2	b	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	100	NULL	NULL	YES	BTREE	
analyze table t1;
Table	Op	Msg_type	Msg_text
unknown's avatar
unknown committed
294
test.t1	analyze	status	OK
295 296
show keys from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
unknown's avatar
unknown committed
297 298
t1	0	a	1	a	A	3	NULL	NULL	YES	BTREE	
t1	0	a	2	b	A	300	NULL	NULL	YES	BTREE	
299
t1	1	b	1	b	A	100	NULL	NULL	YES	BTREE	
300
drop table t1;
301 302 303 304 305
CREATE TABLE t1 (i int(10), index(i) );
ALTER TABLE t1 DISABLE KEYS;
INSERT DELAYED INTO t1 VALUES(1),(2),(3);
ALTER TABLE t1 ENABLE KEYS;
drop table t1;
unknown's avatar
unknown committed
306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419
CREATE TABLE t1 (
Host varchar(16) binary NOT NULL default '',
User varchar(16) binary NOT NULL default '',
PRIMARY KEY  (Host,User)
) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
LOCK TABLES t1 WRITE;
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
SHOW INDEX FROM t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	Host	A	NULL	NULL	NULL		BTREE	
t1	0	PRIMARY	2	User	A	3	NULL	NULL		BTREE	
ALTER TABLE t1 ENABLE KEYS;
UNLOCK TABLES;
CHECK TABLES t1;
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
DROP TABLE t1;
CREATE TABLE t1 (
Host varchar(16) binary NOT NULL default '',
User varchar(16) binary NOT NULL default '',
PRIMARY KEY  (Host,User),
KEY  (Host)
) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	Host	A	NULL	NULL	NULL		BTREE	
t1	0	PRIMARY	2	User	A	0	NULL	NULL		BTREE	
t1	1	Host	1	Host	A	NULL	NULL	NULL		BTREE	disabled
LOCK TABLES t1 WRITE;
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
SHOW INDEX FROM t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	Host	A	NULL	NULL	NULL		BTREE	
t1	0	PRIMARY	2	User	A	2	NULL	NULL		BTREE	
t1	1	Host	1	Host	A	NULL	NULL	NULL		BTREE	disabled
ALTER TABLE t1 ENABLE KEYS;
SHOW INDEX FROM t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	Host	A	NULL	NULL	NULL		BTREE	
t1	0	PRIMARY	2	User	A	2	NULL	NULL		BTREE	
t1	1	Host	1	Host	A	1	NULL	NULL		BTREE	
UNLOCK TABLES;
CHECK TABLES t1;
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
LOCK TABLES t1 WRITE;
ALTER TABLE t1 RENAME t2;
UNLOCK TABLES;
select * from t2;
Host	User
localhost	
localhost	root
DROP TABLE t2;
CREATE TABLE t1 (
Host varchar(16) binary NOT NULL default '',
User varchar(16) binary NOT NULL default '',
PRIMARY KEY  (Host,User),
KEY  (Host)
) ENGINE=MyISAM;
LOCK TABLES t1 WRITE;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	Host	A	NULL	NULL	NULL		BTREE	
t1	0	PRIMARY	2	User	A	0	NULL	NULL		BTREE	
t1	1	Host	1	Host	A	NULL	NULL	NULL		BTREE	disabled
DROP TABLE t1;
create table t1 (a int);
alter table t1 rename to `t1\\`;
ERROR 42000: Incorrect table name 't1\\'
rename table t1 to `t1\\`;
ERROR 42000: Incorrect table name 't1\\'
drop table t1;
drop table if exists t1, t2;
Warnings:
Note	1051	Unknown table 't1'
Note	1051	Unknown table 't2'
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
create table t2 ( a varchar(10) not null primary key ) engine=merge union=(t1);
flush tables;
alter table t1 modify a varchar(10);
show create table t2;
Table	Create Table
t2	CREATE TABLE `t2` (
  `a` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`a`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`)
flush tables;
alter table t1 modify a varchar(10) not null;
show create table t2;
Table	Create Table
t2	CREATE TABLE `t2` (
  `a` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`a`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`)
drop table if exists t1, t2;
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;
insert into t1 (a) values(1);
show table status like 't1';
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
t1	MyISAM	9	Fixed	1	37	X	X	X	X	X	X	X	X	latin1_swedish_ci	NULL		
alter table t1 modify a int;
show table status like 't1';
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
t1	MyISAM	9	Fixed	1	37	X	X	X	X	X	X	X	X	latin1_swedish_ci	NULL		
drop table t1;
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;
insert into t1 (a) values(1);
show table status like 't1';
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
t1	MyISAM	9	Fixed	1	37	X	X	X	X	X	X	X	X	latin1_swedish_ci	NULL		
drop table t1;
420 421 422 423 424 425 426 427 428 429
set names koi8r;
create table t1 (a char(10) character set koi8r);
insert into t1 values ('');
select a,hex(a) from t1;
a	hex(a)
	D4C5D3D4
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
a	hex(a)
	F2E5F1F2
430
alter table t1 change a a binary(10);
431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457
select a,hex(a) from t1;
a	hex(a)
	F2E5F1F2
alter table t1 change a a char(10) character set cp1251;
select a,hex(a) from t1;
a	hex(a)
	F2E5F1F2
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
a	hex(a)
	D4C5D3D4
alter table t1 change a a varchar(10) character set cp1251;
select a,hex(a) from t1;
a	hex(a)
	F2E5F1F2
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
a	hex(a)
	D4C5D3D4
alter table t1 change a a text character set cp1251;
select a,hex(a) from t1;
a	hex(a)
	F2E5F1F2
alter table t1 change a a char(10) character set koi8r;
select a,hex(a) from t1;
a	hex(a)
	D4C5D3D4
458
delete from t1;
459 460 461 462
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` char(10) character set koi8r default NULL
unknown's avatar
unknown committed
463
) ENGINE=MyISAM DEFAULT CHARSET=latin1
464 465 466 467 468
alter table t1 DEFAULT CHARACTER SET latin1;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` char(10) character set koi8r default NULL
unknown's avatar
unknown committed
469
) ENGINE=MyISAM DEFAULT CHARSET=latin1
470
alter table t1 CONVERT TO CHARACTER SET latin1;
471 472 473 474
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` char(10) default NULL
unknown's avatar
unknown committed
475
) ENGINE=MyISAM DEFAULT CHARSET=latin1
476 477 478 479 480
alter table t1 DEFAULT CHARACTER SET cp1251;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` char(10) character set latin1 default NULL
unknown's avatar
unknown committed
481
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
482
drop table t1;
483 484 485 486 487 488
create table t1 (myblob longblob,mytext longtext) 
default charset latin1 collate latin1_general_cs;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `myblob` longblob,
489 490
  `mytext` longtext collate latin1_general_cs
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs
491 492 493 494 495
alter table t1 character set latin2;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `myblob` longblob,
496 497
  `mytext` longtext character set latin1 collate latin1_general_cs
) ENGINE=MyISAM DEFAULT CHARSET=latin2
498
drop table t1;
unknown's avatar
unknown committed
499 500 501 502 503 504 505 506 507 508
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
ALTER TABLE t1 DROP PRIMARY KEY;
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) NOT NULL default '0',
  `b` int(11) default NULL,
  UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t1 DROP PRIMARY KEY;
unknown's avatar
unknown committed
509
ERROR 42000: Can't DROP 'PRIMARY'; check that column/key exists
unknown's avatar
unknown committed
510
DROP TABLE t1;
unknown's avatar
unknown committed
511 512 513 514 515 516
create table t1 (a int, b int, key(a));
insert into t1 values (1,1), (2,2);
alter table t1 drop key no_such_key;
ERROR 42000: Can't DROP 'no_such_key'; check that column/key exists
alter table t1 drop key a;
drop table t1;
517 518 519 520 521 522 523 524 525 526
create table t1 (a text) character set koi8r;
insert into t1 values (_koi8r'');
select hex(a) from t1;
hex(a)
D4C5D3D4
alter table t1 convert to character set cp1251;
select hex(a) from t1;
hex(a)
F2E5F1F2
drop table t1;
527 528 529 530
create table t1 ( a timestamp );
alter table t1 add unique ( a(1) );
ERROR HY000: Incorrect sub part 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 sub keys
drop table t1;
unknown's avatar
unknown committed
531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651
drop table if exists t1;
create table t1 (a int, key(a));
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
"this used not to disable the index"
alter table t1 modify a int, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	disabled
alter table t1 enable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 modify a bigint, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	disabled
alter table t1 enable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 add b char(10), disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	disabled
alter table t1 add c decimal(10,2), enable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
"this however did"
alter table t1 disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	disabled
desc t1;
Field	Type	Null	Key	Default	Extra
a	bigint(20)	YES	MUL	NULL	
b	char(10)	YES		NULL	
c	decimal(10,2)	YES		NULL	
alter table t1 add d decimal(15,5);
"The key should still be disabled"
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	disabled
drop table t1;
"Now will test with one unique index"
create table t1(a int, b char(10), unique(a));
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 enable keys;
"If no copy on noop change, this won't touch the data file"
"Unique index, no change"
alter table t1 modify a int, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
"Change the type implying data copy"
"Unique index, no change"
alter table t1 modify a bigint, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 modify a bigint;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 modify a int;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
drop table t1;
"Now will test with one unique and one non-unique index"
create table t1(a int, b char(10), unique(a), key(b));
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	
alter table t1 disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	disabled
alter table t1 enable keys;
"If no copy on noop change, this won't touch the data file"
"The non-unique index will be disabled"
alter table t1 modify a int, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	disabled
alter table t1 enable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	
"Change the type implying data copy"
"The non-unique index will be disabled"
alter table t1 modify a bigint, disable keys;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	disabled
"Change again the type, but leave the indexes as_is"
alter table t1 modify a int;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	disabled
"Try the same. When data is no copied on similar tables, this is noop"
alter table t1 modify a int;
show indexes from t1;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
t1	1	b	1	b	A	NULL	NULL	NULL	YES	BTREE	disabled
drop table t1;
652 653 654 655 656 657 658 659 660 661 662 663 664 665 666
create database mysqltest1;
create table t1 (c1 int);
alter table t1 rename mysqltest1.t1;
drop table t1;
ERROR 42S02: Unknown table 't1'
alter table mysqltest1.t1 rename t1;
drop table t1;
create table t1 (c1 int);
use mysqltest1;
drop database mysqltest1;
alter table test.t1 rename t1;
ERROR 3D000: No database selected
alter table test.t1 rename test.t1;
use test;
drop table t1;
667 668 669 670 671 672 673 674 675 676 677
DROP TABLE IF EXISTS bug24219;
DROP TABLE IF EXISTS bug24219_2;
CREATE TABLE bug24219 (a INT, INDEX(a));
SHOW INDEX FROM bug24219;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
bug24219	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	
ALTER TABLE bug24219 RENAME TO bug24219_2, DISABLE KEYS;
SHOW INDEX FROM bug24219_2;
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
bug24219_2	1	a	1	a	A	NULL	NULL	NULL	YES	BTREE	disabled
DROP TABLE bug24219_2;