mysql-merge合并表

系统 1642 0

merge表


 

    注意:

1  每个子表的结构必须一致,主表和子表的结构需要一致,



2  每个子表的索引在merge表中都会存在,所以在merge表中不能根据该索引进行唯一性检索。



3  子表需要是MyISAM引擎

4  AUTO_INCREMENT 不会按照你所期望的方式工作。



建表语句



create table tablename(正常的字段)engine=merge insert_method=last



insert_method:



有两个值如下:

LAST  如果你执行insert 指令来操作merge表时,插入操作会把数据添加到最后一个子表中。



FIRST  同理,执行插入数据时会把数据添加到第一个子表中。



例子:



create table user1(

id int(10) not null auto_increment,



name varchar(50),

sex int(1),



primary key(id)

)engine=myisam charset=utf8;



create table user2(



id int(10) not null auto_increment,



name varchar(50),

sex int(10)



,primary key(id)

)engine=myisam charset=utf8;



insert into user1 (name,sex) values('张三',0);



insert into user2 (name,sex) values('lisi',1);



mysql> select * from user1;

+----+------+------+

| id | name | sex  |

+----+------+------+

|  1 | 张三 |    0 |

+----+------+------+



mysql> select * from user2;

+----+------+------+

| id | name | sex  |

+----+------+------+

|  1 | lisi |    1 |

+----+------+------+



create table alluser(



id int(10) not null auto_increment,

name varchar(50),



sex int(10),

index(id)



)type=merge union=(user1,user2) insert_method=last;



mysql> select * from alluser;

+----+------+------+

| id | name | sex  |

+----+------+------+

|  1 | 张三 |    0 |

|  1 | lisi |    1 |

+----+------+------+



mysql> insert into alluser(name,sex) values('嘿嘿',0);



mysql> select * from user1;

+----+------+------+

| id | name | sex  |

+----+------+------+

|  1 | 张三 |    0 |

+----+------+------+

1 row in set (0.00 sec)



mysql> select * from user2;

+----+------+------+

| id | name | sex  |

+----+------+------+

|  1 | lisi |    1 |

|  2 | 嘿嘿 |    0 |

+----+------+------+



2 rows in set (0.00 sec)

//他把这条数据存入了user2表里是因为我们的insert_method的参数填写的是last



mysql> update alluser set sex=replace(sex,0,1) where id=2;

+----+------+------+

| id | name | sex  |

+----+------+------+

|  1 | 张三 |    0 |

|  1 | lisi |    1 |

|  2 | 嘿嘿 |    1 |

+----+------+------+


  


 

 

mysql-merge合并表


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论