我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中如何跨库关联查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中如何跨库关联查询

小编给大家分享一下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;可以看到是否支持)。

mysql中如何跨库关联查询

如果有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不用开启。

以上是“mysql中如何跨库关联查询”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中如何跨库关联查询

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql dblink跨库关联查询如何实现

本文小编为大家详细介绍“mysql dblink跨库关联查询如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql dblink跨库关联查询如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、解
2023-07-05

mysql dblink跨库关联查询的实现

目录1、解决方案2、操作3、缺点1、解决方案mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式。解释:dblink就是我们在创建表的时候连接到我们的远程库,然后我们本地新建的表数据就是映射远程的表的数据。当我们创
2023-02-27

mysql dblink跨库关联查询的实现

本文主要介绍了mysql dblink跨库关联查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-27

mysql之跨库关联查询(dblink)问题

目录1、解决方案2、操作1、开启FEDERATED引擎2、建表时加上连接3、缺点总结1、解决方案mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式。解释:dblink就是我们在创建表的时候连接到我们的远程库,然后
2023-03-09

如何实现mysql远程跨库联合查询

这篇文章主要为大家展示了“如何实现mysql远程跨库联合查询”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现mysql远程跨库联合查询”这篇文章吧。情况一2个库在同一台物理主机联合查询(不
2023-06-29

mysql之跨库关联查询问题怎么解决

这篇文章主要介绍了mysql之跨库关联查询问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql之跨库关联查询问题怎么解决文章都会有所收获,下面我们一起来看看吧。1、解决方案mysql是不支持跨库
2023-07-05

oracle跨库关联查询怎么实现

在Oracle中,可以使用以下几种方法实现跨库关联查询:使用数据库链接(Database Link):首先在目标数据库中创建一个数据库链接,然后使用该链接在当前数据库中执行查询。例如,假设有两个数据库A和B,需要在数据库A中查询数据库B中的
oracle跨库关联查询怎么实现
2024-04-09

在PostgreSQL中实现跨数据库的关联查询

目录一、引言二、PostgreSQL 中的数据库和模式三、实现跨数据库关联查询的方法四、dblink 示例详解五、设置 searc编程网h_path 示例详解六、注意事项七、总结一、引言在 PostgreSQL 中,通常情况下的关联查询是
在PostgreSQL中实现跨数据库的关联查询
2024-08-25

mysql跨库联表查询怎么实现

在MySQL中,跨库联表查询可以通过使用数据库名称作为前缀来实现。以下是一个示例:SELECT t1.column1, t2.column2FROM database1.table1 t1JOIN database2.table2 t
mysql跨库联表查询怎么实现
2024-04-09

如何在mysql中使用关联查询

本篇文章为大家展示了如何在mysql中使用关联查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、确保ON和USING字句中的列上有索引。在创建索引的时候就要考虑到关联的顺序。当表A和表B用列c关
2023-06-15

MySQL跨服务器关联查询的实现

1. 首先确认服务器的Federated引擎是否开启show engines;2. 如果Federated 未开启,则需要开启到mysql的my.cnf配置文件中修改在 [mysqld] 下方加入 federated然后重启msyql服
2023-01-05

MySQL如何实现跨库join查询

目录mysql实现跨库join查询同服务器的不同库不同服务器的不同库数据库跨库join方案总结MySQL实现跨库joinjs查询同服务器的不同库只需要在表名前加上db_nameselect*fromupythonserdb.user
2023-03-09

mysql 多表关联查询如何改进

mysql 多表关联查询怎么优化好呢 🚨 使用正确的连接类型优化 WHERE 子句为关联字段创建索引减少查询的字段考虑使用分布式查询尽量避免子查询优化连接顺序利用 EXPLAIN 分析查询分解复杂查询使用视图或存储过
2023-08-28

如何在MySQL中进行跨表格的联合查询操作

在MySQL中进行跨表格的联合查询操作,可以使用JOIN语句进行连接不同的表格。以下是一些常见的JOIN语句及其用法:内连接(INNER JOIN):只返回两个表格中共有的记录。SELECT * FROM table1INNER JOI
如何在MySQL中进行跨表格的联合查询操作
2024-04-09

编程热搜

目录