MYSQL MERGE引擎 报错
2017-06-14 00:00
246 查看
MYSQL MERGE引擎 报错:
ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
MERGE引擎的表经常用来把多张相同数据结构的表的数据统一到一起,但是创建这个表时必须要保证他的字段类型及长度等属性与要统一的表保持一致,否则就会包以上的错误。
例:
CREATE TABLE `user1` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `user2` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `userall` (
id int(11) NOT NULL,
name varchar(255) DEFAULT NULL,
INDEX(id)
) ENGINE=MERGE UNION = (user1,user2) INSERT_METHOD=LAST;
这里id的类型必须为int,长度必须为11,其他字段也要与要统一的表的字段保持一致。
ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
MERGE引擎的表经常用来把多张相同数据结构的表的数据统一到一起,但是创建这个表时必须要保证他的字段类型及长度等属性与要统一的表保持一致,否则就会包以上的错误。
例:
CREATE TABLE `user1` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `user2` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `userall` (
id int(11) NOT NULL,
name varchar(255) DEFAULT NULL,
INDEX(id)
) ENGINE=MERGE UNION = (user1,user2) INSERT_METHOD=LAST;
这里id的类型必须为int,长度必须为11,其他字段也要与要统一的表的字段保持一致。
相关文章推荐
- [MySQL Bug] 在RBR复制模式下使用Merge引擎导致备库Crash的bug
- MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别
- MySQL- 存储引擎 MERGE 的介绍
- Mysql分表查询引擎Merge技术总结
- MySQL--Merge存储引擎
- mysql 学习----> 查看引擎、myisam引擎、自增长、主外键关联、memory引擎、merge引擎
- mysql用merge引擎进行分表
- mysql之merge引擎
- MySQL存储引擎memory和merge介绍
- MySQL的表类型的(存储引擎)的选择MyISAM+InnoDB+MEMORY+MERGE
- mysql 开发基础系列11 存储引擎memory和merge介绍
- mysql 学习记录(六)-- 查看引擎、myisam引擎、自增长、主外键关联、memory引擎、merge引擎
- MySQL-MERGE存储引擎的使用测试
- mysql菜鸟手迹11--mysql存储引擎之Merge
- Mysql的存储引擎之:MERGE存储引擎
- mysql分表 MERGE存储引擎
- mysql 分表,分区,分库相关及merge引擎
- MySQL中MyISAM引擎和Heap引擎速度测试
- MySQL专用开源数据库存储引擎出炉
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试