mysql-merge合并表

标签: mysql merge 合并 | 发表时间:2013-08-26 17:32 | 作者:maildocgaojingru
出处:http://blog.csdn.net
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 |
+----+------+------+


作者:maildocgaojingru 发表于2013-8-26 17:32:27 原文链接
阅读:53 评论:0 查看评论

相关 [mysql merge 合并] 推荐:

mysql-merge合并表

- - CSDN博客编程语言推荐文章
注意: 1 每个子表的结构必须一致,主表和子表的结构需要一致, 2 每个子表的索引在merge表中都会存在,所以在merge表中不能根据该索引进行唯一性检索. 3 子表需要是MyISAM引擎 4 AUTO_INCREMENT 不会按照你所期望的方式工作. 建表语句 create table tablename(正常的字段)engine=merge insert_method=last insert_method: 有两个值如下: LAST 如果你执行insert 指令来操作merge表时,插入操作会把数据添加到最后一个子表中.

【转】Mysql MERGE引擎简介

- - 编程语言 - ITeye博客
一. 什么是MERGE 引擎. MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询. 如果需要把日志纪录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要时常进行来自多个表的合计查询,MERGE表这时会非常简单有效. 执行select * from t;将会得到如下结果.

oracle表之间的连接之------>排序合并连接(Merge Sort Join)

- - CSDN博客数据库推荐文章
排序合并连接 (Sort Merge Join)是一种两个表在做连接时用排序操作(Sort)和合并操作(Merge)来得到连接结果集的连接方法. 对于排序合并连接的优缺点及适用场景如下:. a,通常情况下,排序合并连接的执行效率远不如哈希连接,但前者的使用范围更广,因为哈希连接只能用于等值连接条件,而排序合并连接还能用于其他连接条件(如<,<=,>.>=).

[转]MapReduce:详解Shuffle(copy,sort,merge)过程

- - 芒果先生Mango的专栏
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方. 要想理解MapReduce, Shuffle是必须要了解的. 我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混. 前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟.

Oracle中Merge Into 代替Insert/Update的应用

- - 数据库 - ITeye博客
在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录时,就更新(Update),不存在数据时,就插入(Insert). 在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中的记录数.

mysql索引合并:一条sql可以使用多个索引

- - 博学无忧
mysql的索引合并并不是什么新特性. 早在mysql5.0版本就已经实现. 之所以还写这篇博文,是因为好多人还一直保留着一条sql语句只能使用一个索引的错误观念. 本文会通过一些示例来说明如何使用索引合并. 下面我们看下mysql文档中对索引合并的说明:. 根据官方文档中的说明,我们可以了解到:.

【分布式系统工程实现】Bigtable Merge-Dump存储引擎

- XiaoHui - NOSQL Notes
单机存储引擎解决单机读写问题,Merge-Dump存储引擎设计成一种通用的存储引擎,同时支持数据写入,随机读取和顺序扫描功能. 顺序扫描功能应用很广,比如MapReduce批处理,同一个广告主的所有关键词广告统计,用户浏览所有的收藏信息,淘宝卖家管理大量的商品等. 简单的KV系统只需要支持随机读取,而类似Bigtable这样的通用表格系统需要考虑基于主键的顺序扫描功能.

HTC 中国发布 CDMA/GSM 双模机:纵横 (Merge 行货版)

- 涛涛 - Engadget 中国版
HTC 终于把 HTC Merge 这款机型带到中国来卖,这将改变其没有双模机行货的局面. 将其取名纵横显然是因为其不但支持中国电信的 CDMA2000 网络,它还支持 WCDMA 和 GSM 网络. 外观和硬件规格和海外版一致,HTC 纵横(S610d )采用 3.8 英寸的屏幕,480×800 像素分辨率,高通 MSM 7630 800MHz 处理器搭配 512MB RAM,500万像素摄像头带自动对焦,有LED闪光灯.

Oracle的Filter,Nest loop,Merge sort join和Hash join(原创)

- - ITeye博客
按照Merge Sort Join连接的两表地位完全相同. 这种算法会把每个表按照连接列进行排序,生成两个排序集. 然后对两个排序集进行一次遍历便可以得到最终结果集. 这个算法的特点是,每个表都需要排序,排序后都需要遍历一次. 以下面的例子说明,Merge Sort Join的执行过程如下:. 1、根据tabs表的where条件,查找出符合条件的结果集.

Oracle更新的两种方式(merge/update内联视图)

- - 数据库 - ITeye博客
对于Oracle的两表联合更新的场景(有A、B两表,以A.id=B.id关联,根据B表中的记录更新A表中的相应字段),一般有update内联视图和merge两种方式,下面举例介绍:. merge方法是最简洁,效率最高的方式,在大数据量更新时优先使用这种方式. update内联视图方式:. 使用这种方式必须在test2.id上有主键(这里很好理解,必须保证每一个test1.id对应在test2里只有一条记录,如果test2中有多条对应的记录,怎么更新test1.