2012年6月18日 星期一

MySQL MRG_MYISAM

MGR_MYISAM只適用於相同結構的table,即將所有已拆開的表合併
照以下順序,可以發現在merge table裡會同步t1, t2的insert, update, delete。
但於merge裡只能有select, update及delete的操作,不支援insert。
1
CREATE TABLE IF NOT EXISTS `t1` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `message` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
2
INSERT INTO `t1` (`id`, `message`) VALUES
(1, 't1的第一筆'),
(2, 't1的第二筆');
3
CREATE TABLE IF NOT EXISTS `t2` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `message` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
4
CREATE TABLE IF NOT EXISTS `merge` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `message` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
UNION=(`t1`,`t2`);
5
INSERT INTO `t2` (`id`, `message`) VALUES
(1, 't2的第一筆');

沒有留言:

張貼留言