mysql insert into 跨库怎么写sql

中凯_凯哥java 发布于 2016/08/10 10:18
阅读 1K+
收藏 1

问题描述:

比如A库:

url:10.10.10.110 

数据库名:bd1

表名:t1

B库:

url:10.10.10.101

数据库名:bd2

表名:t2

都是mysql数据库。

现在 想把A库中t1表中 id,name 插入到B库t2表中的 tid,tname这两个字段中。

请问sql怎么写?

参考语句:

 INSERT INTO t2(tid,tname) SELECT * from (select t1.id,t1.name from t1 ) as f

这个只是在同一个库没问题。可是跨库的怎么写?

加载中
0
zjxzjx
zjxzjx
 mysql 也能这么搞?
中凯_凯哥java
中凯_凯哥java
嗯嗯。可以的。我这里说错了不是跨库。而是跨服务器
0
黑豆白
黑豆白
把表名改成:库名.表名
0
CeeFee
CeeFee

只要前面加库名就行,前提是在同一服务器同一MySQL里!!!

databaseName.tableName



中凯_凯哥java
中凯_凯哥java
嗯嗯。我这里说错了不是跨库。而是跨服务器。如果是在同一个服务器上,你这种写法可以。但是如果跨服务器了怎么办?
0
亭舸翁
亭舸翁
oracle可以用dblink,你可以搜一下mysql有没有类似功能
中凯_凯哥java
中凯_凯哥java
好像没有。不过,谢谢你!你看懂我说的是跨服务器的了
0
ssicn
ssicn
跨服务器或跨实例访问 需要federated引擎支持,在创建表的sql最后加上connection="mysql://用户名:密码@ip:port/dbname/tablename"。
ssicn
ssicn
回复 @司凯子 : A库所在服务器安装federated引擎,并创建表同时映射(connection)到到B库的t2
中凯_凯哥java
中凯_凯哥java
我就是跨服务器的。可以具体说下吗?或者是由连接吗?我参考参考
0
yanInsert
yanInsert
数据库名称.表名,这样试试吧,oracle是可以的。
yanInsert
yanInsert
回复 @司凯子 : 如果采用第三方的软件可以试试,记得以前用过一款服务同步的软件,好像就可以这么操作。
中凯_凯哥java
中凯_凯哥java
你说的这种方法如果两个库在同一服务器上可以的。我想要的是跨服务器的。
0
逝水fox
逝水fox

不在同一台机上,安装并启用了Federated引擎的话,可以使用他创建一个远端服务器表的连接表,然后就可以像操作本地表的方式做DML语句操作。相关内容可以看这里

http://dev.mysql.com/doc/refman/5.7/en/federated-storage-engine.html

中凯_凯哥java
中凯_凯哥java
好的。谢谢!
0
lyle_luo
lyle_luo
http://www.iteye.com/problems/6072 ,看看这个吧。可以用FEDERATED存储引擎解决
中凯_凯哥java
中凯_凯哥java
啊哈?这个直说负债均衡
返回顶部
顶部