📄 merge.result
字号:
drop table if exists t1,t2,t3,t4,t5,t6;drop database if exists mysqltest;create table t1 (a int not null primary key auto_increment, message char(20));create table t2 (a int not null primary key auto_increment, message char(20));INSERT INTO t1 (message) VALUES ("Testing"),("table"),("t1");INSERT INTO t2 (message) VALUES ("Testing"),("table"),("t2");create table t3 (a int not null, b char(20), key(a)) engine=MERGE UNION=(t1,t2);select * from t3;a b1 Testing2 table3 t11 Testing2 table3 t2select * from t3 order by a desc;a b3 t13 t22 table2 table1 Testing1 Testingdrop table t3;insert into t1 select NULL,message from t2;insert into t2 select NULL,message from t1;insert into t1 select NULL,message from t2;insert into t2 select NULL,message from t1;insert into t1 select NULL,message from t2;insert into t2 select NULL,message from t1;insert into t1 select NULL,message from t2;insert into t2 select NULL,message from t1;insert into t1 select NULL,message from t2;insert into t2 select NULL,message from t1;insert into t1 select NULL,message from t2;create table t3 (a int not null, b char(20), key(a)) engine=MERGE UNION=(test.t1,test.t2);explain select * from t3 where a < 10;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t3 range a a 4 NULL 18 Using whereexplain select * from t3 where a > 10 and a < 20;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t3 range a a 4 NULL 17 Using whereselect * from t3 where a = 10;a b10 Testing10 Testingselect * from t3 where a < 10;a b1 Testing1 Testing2 table2 table3 t13 t24 Testing4 Testing5 table5 table6 t26 t17 Testing7 Testing8 table8 table9 t29 t2select * from t3 where a > 10 and a < 20;a b11 table11 table12 t112 t113 Testing13 Testing14 table14 table15 t215 t216 Testing16 Testing17 table17 table18 t218 t219 Testing19 Testingexplain select a from t3 order by a desc limit 10;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t3 index NULL a 4 NULL 1131 Using indexselect a from t3 order by a desc limit 10;a699698697696695694693692691690select a from t3 order by a desc limit 300,10;a416415415414414413413412412411delete from t3 where a=3;select * from t3 where a < 10;a b1 Testing1 Testing2 table2 table4 Testing4 Testing5 table5 table6 t26 t17 Testing7 Testing8 table8 table9 t29 t2delete from t3 where a >= 6 and a <= 8;select * from t3 where a < 10;a b1 Testing1 Testing2 table2 table4 Testing4 Testing5 table5 table9 t29 t2update t3 set a=3 where a=9;select * from t3 where a < 10;a b1 Testing1 Testing2 table2 table3 t23 t24 Testing4 Testing5 table5 tableupdate t3 set a=6 where a=7;select * from t3 where a < 10;a b1 Testing1 Testing2 table2 table3 t23 t24 Testing4 Testing5 table5 tableshow create table t3;Table Create Tablet3 CREATE TABLE `t3` ( `a` int(11) NOT NULL, `b` char(20) default NULL, KEY `a` (`a`)) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)create table t4 (a int not null, b char(10), key(a)) engine=MERGE UNION=(t1,t2);select * from t4;ERROR HY000: All tables in the MERGE table are not identically definedalter table t4 add column c int;ERROR HY000: All tables in the MERGE table are not identically definedcreate database mysqltest;create table mysqltest.t6 (a int not null primary key auto_increment, message char(20));create table t5 (a int not null, b char(20), key(a)) engine=MERGE UNION=(test.t1,mysqltest.t6);show create table t5;Table Create Tablet5 CREATE TABLE `t5` ( `a` int(11) NOT NULL, `b` char(20) default NULL, KEY `a` (`a`)) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`mysqltest`.`t6`)alter table t5 engine=myisam;drop table t5, mysqltest.t6;drop database mysqltest;drop table t4,t3,t1,t2;create table t1 (c char(10)) engine=myisam;create table t2 (c char(10)) engine=myisam;create table t3 (c char(10)) union=(t1,t2) engine=merge;insert into t1 (c) values ('test1');insert into t1 (c) values ('test1');insert into t1 (c) values ('test1');insert into t2 (c) values ('test2');insert into t2 (c) values ('test2');insert into t2 (c) values ('test2');select * from t3;ctest1test1test1test2test2test2select * from t3;ctest1test1test1test2test2test2delete from t3 where 1=1;select * from t3;cselect * from t1;cdrop table t3,t2,t1;CREATE TABLE t1 (incr int not null, othr int not null, primary key(incr));CREATE TABLE t2 (incr int not null, othr int not null, primary key(incr));CREATE TABLE t3 (incr int not null, othr int not null, primary key(incr))ENGINE=MERGE UNION=(t1,t2);SELECT * from t3;incr othrINSERT INTO t1 VALUES ( 1,10),( 3,53),( 5,21),( 7,12),( 9,17);INSERT INTO t2 VALUES ( 2,24),( 4,33),( 6,41),( 8,26),( 0,32);INSERT INTO t1 VALUES (11,20),(13,43),(15,11),(17,22),(19,37);INSERT INTO t2 VALUES (12,25),(14,31),(16,42),(18,27),(10,30);SELECT * from t3 where incr in (1,2,3,4) order by othr;incr othr1 102 244 333 53alter table t3 UNION=(t1);select count(*) from t3;count(*)10alter table t3 UNION=(t1,t2);select count(*) from t3;count(*)20alter table t3 ENGINE=MYISAM;select count(*) from t3;count(*)20drop table t3;CREATE TABLE t3 (incr int not null, othr int not null, primary key(incr))ENGINE=MERGE UNION=(t1,t2);show create table t3;Table Create Tablet3 CREATE TABLE `t3` ( `incr` int(11) NOT NULL, `othr` int(11) NOT NULL, PRIMARY KEY (`incr`)) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)alter table t3 drop primary key;show create table t3;Table Create Tablet3 CREATE TABLE `t3` ( `incr` int(11) NOT NULL, `othr` int(11) NOT NULL) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)drop table t3,t2,t1;create table t1 (a int not null, key(a)) engine=merge;select * from t1;adrop table t1;create table t1 (a int not null, b int not null, key(a,b));create table t2 (a int not null, b int not null, key(a,b));create table t3 (a int not null, b int not null, key(a,b)) ENGINE=MERGE UNION=(t1,t2);insert into t1 values (1,2),(2,1),(0,0),(4,4),(5,5),(6,6);insert into t2 values (1,1),(2,2),(0,0),(4,4),(5,5),(6,6);flush tables;select * from t3 where a=1 order by b limit 2;a b1 11 2drop table t3,t1,t2;create table t1 (a int not null, b int not null auto_increment, primary key(a,b));create table t2 (a int not null, b int not null auto_increment, primary key(a,b));create table t3 (a int not null, b int not null, key(a,b)) UNION=(t1,t2) INSERT_METHOD=NO;create table t4 (a int not null, b int not null, key(a,b)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=NO;create table t5 (a int not null, b int not null auto_increment, primary key(a,b)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=FIRST;create table t6 (a int not null, b int not null auto_increment, primary key(a,b)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;show create table t3;Table Create Tablet3 CREATE TABLE `t3` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL, KEY `a` (`a`,`b`)) ENGINE=MyISAM DEFAULT CHARSET=latin1show create table t4;Table Create Tablet4 CREATE TABLE `t4` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL, KEY `a` (`a`,`b`)) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`,`t2`)show create table t5;Table Create Tablet5 CREATE TABLE `t5` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL auto_increment, PRIMARY KEY (`a`,`b`)) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=FIRST UNION=(`t1`,`t2`)show create table t6;Table Create Tablet6 CREATE TABLE `t6` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL auto_increment, PRIMARY KEY (`a`,`b`)) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`t1`,`t2`)insert into t1 values (1,NULL),(1,NULL),(1,NULL),(1,NULL);insert into t2 values (2,NULL),(2,NULL),(2,NULL),(2,NULL);select * from t3 order by b,a limit 3;a bselect * from t4 order by b,a limit 3;a b1 12 11 2select * from t5 order by b,a limit 3,3;a b2 21 32 3select * from t6 order by b,a limit 6,3;a b1 42 4insert into t5 values (5,1),(5,2);insert into t6 values (6,1),(6,2);select * from t1 order by a,b;a b1 11 21 31 45 15 2select * from t2 order by a,b;a b2 12 22 32 46 16 2select * from t4 order by a,b;a b1 11 21 31 42 12 22 32 45 15 26 16 2insert into t3 values (3,1),(3,2),(3,3),(3,4);select * from t3 order by a,b;a b3 13 23 33 4alter table t4 UNION=(t1,t2,t3);show create table t4;Table Create Tablet4 CREATE TABLE `t4` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -