旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql中的跨库关联查询方法实例【MySQL教程】,mysql,方法,查询

作者:搜教程发布时间:2019-11-27分类:MySQL教程浏览:67评论:0


导读:本文重要引见了mysql中的跨库关联查询方法,须要的朋侪能够参考下,希望能协助到人人。营业场景:关联差别数据库中的表的查询比如说,要关联的表是:机械A上的数据库A中的表...
本文重要引见了mysql中的跨库关联查询方法,须要的朋侪能够参考下,希望能协助到人人。

营业场景:关联差别数据库中的表的查询

比如说,要关联的表是:机械A上的数据库A中的表A && 机械B上的数据库B中的表B。

这类情况下,想实行“select A.id,B.id from A left join B on ~~~;“那是不可能的,但营业需求不可变,数据库设想不可变,这就蛋疼了。。

解决方案:在机械A上的数据库A中建一个表B。。。

这固然不是跟你开顽笑啦,我们采纳的是基于MySQL的federated引擎的建表体式格局。

建表语句示例:


CREATE TABLE `table_name`(......) ENGINE =FEDERATED CONNECTION='mysql://[username]:[password]@[location]:[port]/[db-name]/[table-name]'

前提条件:你的mysql得支撑federated引擎(实行show engines;能够看到是不是支撑)。

假如有FEDERATED引擎,但Support是NO,申明你的mysql装置了这个引擎,但没启用,去my.cnf文件末增加一行 federated ,重启mysql即可;

假如压根就没有FEDERATED这一行,申明你的mysql就没有装置这个引擎,这就不能兴奋的游玩了,最好去找你们家运维搞定吧,由于接下来的行动比较大,而且我也不知道怎么搞;

诠释:经由过程FEDERATED引擎建立的表只是在当地有表定义文件,数据文件则存在于长途数据库中,经由过程这个引擎能够完成相似Oracle 下DBLINK的长途数据接见功用。就是说,这类建表体式格局只会在数据库A中建立一个表B的表构造文件,表的索引、数据等文件照样在机械B上的数据库B中,相当于只是在数据库A中建立了表B的一个快捷体式格局。

因而,蛋就不疼了。。

须要注重的几点:

1. 当地的表构造必需与长途的完整一样。

2.长途数据库现在仅限MySQL

3.不支撑事件

4.不支撑表构造修正

其他网友的补充:


CREATE TABLE IF NOT EXISTS `logintoken` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` char(1) NOT NULL DEFAULT '0',
`loginName` varchar(20) DEFAULT NULL,
`token` varchar(2000) DEFAULT NULL,
`tokenExpiredTime` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.5.102:3306/zysso/logintoken';

运用长途5.12的 logintoken表,只须要本身开启FEDERATED 就能够了,5.12不必开启。

相干引荐:

Oracle怎样完成跨库查询

跨库事件一致性问题的解决方案(例)

[MSSQL]SQLServer跨库查询

以上就是mysql中的跨库关联查询方法实例的细致内容,更多请关注ki4网别的相干文章!

标签:mysql方法查询


欢迎 发表评论: