使用MySQL FEDERATED存储引擎,没有对表的本地数据文件(比如,没有.MYD文件)。取而代之地,一个远程数据库存储那些正常地应该在表中的数据。这使得MySQL客户端API来读,删除,更新和插入数据的使用成为必要。数据取回被通过SELECT * FROM tbl_name SQL语句来初始化。要读这个结果,通过使用mysql_fetch_row() C API函数,行被一次取一个,然后从SELECT结果包中的列转换成FEDERATED处理器期望的格式。
CREATE TABLE test_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '', other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other))ENGINE=MyISAMDEFAULT CHARSET=latin1;ENGINE表选项可能命名任何存储引擎,该表需要不是一个MyISAM表。
接着,在本地服务器上为访问远程表创建一个FEDERATED表:
CREATE TABLE federated_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '', other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other))ENGINE=FEDERATEDDEFAULT CHARSET=latin1CONNECTION='mysql://root@remote_host:9306/federated/test_table';(注意: CONNECTION 替代 用在先前版本的MySQL里的COMMENT)。