文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL中进行跨库查询的方法示例

2022-05-28 00:52

关注

前言

在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。

一、同服务的跨库查询

同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法是这样的:SELECT * FROM 数据库1.table1 x JOIN 数据库2.table2 y ON x.field1=y.field2;例如:

二、不同服务的跨库查询

不同服务的跨库查询,直接通过数据名加表明是无法进行关联的,这里需要用到MySQL数据库中的federated引擎。具体过程如下:

需求:服务A上的数据库X的表A需要关联服务B上的数据库Y中的表B,查询需要的数据;

先查看MySQL数据库是否安装了FEDERATED引擎,通过命令show engines;如下图:

如上图所示,MySQL安装了FEDERATED引擎,但Support是No,表示没有启用,去my.cnf文件末加上1行FEDERATED,重启MySQL即可。若没有找到FEDERATED引擎,则需要去安装了。

在服务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中,相当于一种快捷方式,方便关联。

在服务A上的数据库X中直接进行A表与B表关联,就可以查询出需要的数据了。

这种方式有以下几点是需要注意的:

1)、该跨库查询方式不支持事务,最好别使用事务。

2)、不能修改表结构。

3)、MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。

4)、表结构必须和目标数据库表完全一致。

总结

到此这篇关于MySQL中进行跨库查询的文章就介绍到这了,更多相关MySQL跨库查询内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯