在最近开发过程中遇到一个基础数据公用的问题,就是部门表和项目表的数据会在每个系统中用到,但是又不想每个系统开发的时候创建这两个表也不想配置多个数据源。
那么可以使用FEDERATED引擎。首先创建一个基础数据库用来存储这个基础表。然后在每个系统中创建表。语句如下:
CREATE TABLE `t_project` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`code` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '项目编码',
`name` varchar(50) DEFAULT NULL COMMENT '项目名称',
`status` tinyint(4) DEFAULT NULL COMMENT '是否有效 0 有效 1 无效',
PRIMARY KEY (`id`),
KEY `code` (`code`) USING BTREE
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT CONNECTION='mysql://基础表的登录名:基础表的密码@ip地址:3306/sharedlib/t_project';
sharedlib和t_project:替换成自己的数据库名和表名即可