MySQL中进行跨库查询的方法示例
作者:程序猿小旺 时间:2024-01-26 10:27:39
前言
在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。
一、同服务的跨库查询
同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法是这样的:SELECT * FROM 数据库1.table1 x JOIN 数据库2.table2 y ON x.field1=y.field2;例如:
二、不同服务的跨库查询
不同服务的跨库查询,直接通过数据名加表明是无法进行关联的,这里需要用到MySQL数据库中的federated引擎。具体过程如下:
需求:服务A上的数据库X的表A需要关联服务B上的数据库Y中的表B,查询需要的数据;
1、先查看MySQL数据库是否安装了FEDERATED引擎,通过命令show engines;如下图:
如上图所示,MySQL安装了FEDERATED引擎,但Support是No,表示没有启用,去my.cnf文件末加上1行FEDERATED,重启MySQL即可。若没有找到FEDERATED引擎,则需要去安装了。
2、在服务A上的数据库X中创建一个表B,语句如下:CREATE TABLE table_name(……)ENGINE=FEDERATED CONNECTION='mysql://[username]:[password]@[localtion]:[port]/[db-name]/[table-name]'
说明:通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中,通过这个引擎可以实现远程数据访问功能。换句话说,这种建表方式会在服务A上的数据库X中创建了一个表结构文件(即服务B上的数据库Y的B表的表结构文件),表的索引、数据等文件还在服务B上的数据库Y中,相当于一种快捷方式,方便关联。
3、在服务A上的数据库X中直接进行A表与B表关联,就可以查询出需要的数据了。
这种方式有以下几点是需要注意的:
1)、该跨库查询方式不支持事务,最好别使用事务。
2)、不能修改表结构。
3)、MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。
4)、表结构必须和目标数据库表完全一致。
来源:https://www.toutiao.com/a6847859891349291534/
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
vue 全局引用公共的组件以及公共的JS文件问题
![](https://img.aspxhome.com/file/2023/5/123035_0s.png)
解析:Perl下应当如何连接Access数据库
分享几种python 变量合并方法
详解如何用Golang处理每分钟100万个请求
![](https://img.aspxhome.com/file/2023/8/103038_0s.webp)
pandas中read_sql使用参数进行数据查询的实现
pytorch:实现简单的GAN示例(MNIST数据集)
关于Python卷积函数详解
![](https://img.aspxhome.com/file/2023/7/133667_0s.jpg)
Python必知必会之os模块实例详解
![](https://img.aspxhome.com/file/2023/6/99046_0s.jpg)
在Python中使用matplotlib模块绘制数据图的示例
![](https://img.aspxhome.com/file/2023/4/83714_0s.png)
Django+boostrap 美化admin后台的操作
![](https://img.aspxhome.com/file/2023/3/71503_0s.jpg)
解决Python中pandas读取*.csv文件出现编码问题
![](https://img.aspxhome.com/file/2023/0/94180_0s.png)
MongoDB与MySQL常用操作语句对照
Python标准库os库的常用功能解析
![](https://img.aspxhome.com/file/2023/0/134610_0s.png)
一个奇怪的CSS现象
![](https://img.aspxhome.com/file/UploadPic/20102/10/y200921122655-79s.jpg)
SQL离前端有多远?
vue中v-for通过动态绑定class实现触发效果
pytorch 常用函数 max ,eq说明
![](https://img.aspxhome.com/file/2023/5/130955_0s.jpg)
golang线程安全的map实现
真正高效的SQLSERVER分页查询(多种方案)
php+ajax无刷新上传图片实例代码
![](https://img.aspxhome.com/file/2023/1/104181_0s.png)