TP跨数据库模型关联查询数据

在做项目的过程中,有一个需求,需要项目A调用项目B的部分表数据,但是数据不能进行上传两份数据,所以使用mysql Federated引擎 进行实现

A项目需要调用项目B数据库部分表内容时,但是B项目表使用产生的数据在A项目内,需要进行关联查询

开启 mysql FEDERATED 引擎 来源

在my.cnf中添加federated这一个属性就可开启.
在这里插入图片描述
再查询一下

在这里插入图片描述

第二步

slave中创建表结构的时候加入上面引擎.

CREATE TABLE `cas_user` (
  `id` varchar(255) NOT NULL COMMENT 'id',
  `encryid` varchar(255) DEFAULT NULL COMMENT '加密后的用户id',
  `name` varchar(255) DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) DEFAULT NULL COMMENT '密码',
  `mobile` varchar(40) DEFAULT NULL COMMENT '手机号码',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `sex` int(1) DEFAULT NULL COMMENT '性别(0:男,1:女)',
  `credit` double(11,2) DEFAULT '0.00',
  PRIMARY KEY (`oid`),
  UNIQUE KEY `upk_user_id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='用户表'
ENGINE=FEDERATED CONNECTION='mysql://[username]:[password]@[服务器IP]:3306/[数据库]/[表名]';

username 代表 数据库用户
password 代表 数据库密码

从上面可以看出来, 我本身表就已经有啦innodb引擎, 我在后面再添加了一个.

注意: 只要表结构就行, 数据会自动从master中映射过来的.

演示:只要master中的cas_user表有操作,在slave中会显示同样的操作, 我在master中删除两条数据, 打开slave的cas_user会发现数据同样少了那被删的两条.

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

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

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

2)、不能修改表结构。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值