目标:数据库A中的表可以join数据库B中的表。
环境:Windows系统,免安装版mysql-5.7.22。
需求:数据库中表很多,将表按业务划分到不同的数据库,保存表之间必要的关联关系。
执行命令:SHOW ENGINES;
,查看mysql数据库中Federated引擎是否开启。下图所示,为未开启。
修改mysql文件夹根目录的my.ini文件(Linux系统修改my.cnf文件):新添加一行,内容为federated,如下图所示:
重启MySQL
再次执行命令:SHOW ENGINES;
,可以看到Federated引擎已开启。
A库中添加一张student表:
CREATE TABLE student( id VARCHAR(10) NOT NULL DEFAULT '' COMMENT '主键id', student_name VARCHAR(10) DEFAULT NULL COMMENT '学生姓名', school_id VARCHAR(10) NOT NULL DEFAULT '' COMMENT '学校id', PRIMARY KEY(id) )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';
B库中添加一张school表:
CREATE TABLE school( id VARCHAR(10) NOT NULL DEFAULT '' COMMENT '主键id', school_name VARCHAR(10) DEFAULT NULL COMMENT '学校名称', PRIMARY KEY(id) )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校表';
在数据库A中添加一行数据:
id = 1 student_name = 琚建飞 school_id = 1
在数据库B中添加一行数据:
id=1 school_name = 廊坊师范
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。