首先需要注意的:
1、基础表必须是MYISAM引擎的表,因为MERGE引擎只适用于MYISAM表
2、union的基础表必须是存在的表。
3、MERGE的时候只能引用同一个库种存在的基础表。
4、各个基础表的结构(索引、引擎、列、字符集等)需要一致。
5、类似的基础表和merge表 CHARSET=utf8 等约定需要一致。
例子:
基础表test1:
CREATE TABLE `test1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` varchar(255) DEFAULT NULL, `commodity_code` varchar(255) DEFAULT NULL, `count` int(11) DEFAULT '0', `money` int(11) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
基础表test2:
CREATE TABLE `test2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` varchar(255) DEFAULT NULL, `commodity_code` varchar(255) DEFAULT NULL, `count` int(11) DEFAULT '0', `money` int(11) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
merge表:
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` varchar(255) DEFAULT NULL, `commodity_code` varchar(255) DEFAULT NULL, `count` int(11) DEFAULT '0', `money` int(11) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MERGE UNION=(test1, test2) INSERT_METHOD=LAST CHARSET=utf8;
这样就可以实现合并表。