mysql merge engine_使用mysql merge engine 注意点

CREATE TABLE `t1` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`log` varchar(45) ,

PRIMARY KEY (`id`)

) ENGINE=MyISAM;

CREATE TABLE `t2`(

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`log` varchar(45) ,

PRIMARY KEY (`id`)

) ENGINE=MyISAM;

CREATE TABLE `t` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`log` varchar(45),

PRIMARY KEY (`id`)

) ENGINE=MERGE UNION=(t3, t4) INSERT_METHOD=LAST;

再比如

CREATE TABLE t1 (

a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

message CHAR(20)) ENGINE=MyISAM;

CREATE TABLE t2 (

a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

message CHAR(20)) ENGINE=MyISAM;

INSERT INTO t1 (message) VALUES ('Testing'),('table'),('t1');

INSERT INTO t2 (message) VALUES ('Testing'),('table'),('t2');

CREATE TABLE total (

a INT NOT NULL AUTO_INCREMENT,

message CHAR(20), INDEX(a))

ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;

select * from t where id=1;

只有当id在merge表是主键或唯一时才会只返回一条记录。

而在total表中,由于a不是主键,所以查询会return所有符合条件的log

select * from total where a =1;

返回结果:

a message

1 Testing

1 Testing

来自 官方文档

http://dev.mysql.com/doc/refman/5.6/en/merge-storage-engine.html

如果想在已經創建的merge表上添加新的union表。執行以下sql

ALTER TABLE total UNION=(t1,t2,t5)

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2015-08-27 14:46

浏览 993

分类:数据库

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值