2010-08-25 81 views
2

执行一个MySQL查询我有一个简单的问题,让我整夜:(。对多个数据库

假设我们在不同的服务器2名的数据库,你可以轻松地创建2个连接和操作两个数据库中的数据。

如果我想在这两个数据库执行一个查询

?例如:

INSERT INTO database1.table1 
VALUES ('one','two','three') 
WHERE database1.table1.something LIKE (SELECT something from database2.table2) 

对不起,我的代码,我真的不EXPER熟悉SQL代码。

当数据库都可以通过相同的连接访问时,这种尝试是可能的。

但是,如果数据库位于不同的服务器上(当您需要两个连接时),是否可以实现相同的结果?

这将是对我这么容易得多,如果这样的解决方案将存在:(。

问候

+4

数据库引擎并不是真的被设计来做这种事情。 – Amber 2010-08-25 17:34:00

+0

链接服务器已经出现只要我记得 - 例如oracle。 (10年++)但是,我会使用像MS企业服务(认为MTS)的2阶段提交http://en.wikipedia.org/wiki/Two-phase_commit_protocol(corba也适用,如果你是这样倾斜) – 2010-08-25 18:18:35

回答

1

那么,它可能在一个连接(当然,从客户端的一个一个连接服务器,服务器和其他服务器之间会有连接),只需使用FEDERATED storage engine,它可以按照你想要的方式工作(但要注意,由于所有增加的解析和网络流量,它可能会很慢)。 ..

+0

+1:我只是想发布相同的东西 - Oracle和SQL Server具有连接到其他数据库(包括其他供应商)的功能。 PostgreSQL 8.4增加了dblink,但只支持连接到其他PostgreSQL实例... – 2010-08-25 17:39:40

+0

是的,MySQL只支持其他MySQL服务器。但我认为我在某处看到了一个支持ODBC的插件引擎。我发现[FederatedX](http://capttofu.livejournal.com/21311.html),但那不是很多... – ircmaxell 2010-08-25 17:49:05

+0

Thx的答案,我认为这可能只是工作。我尝试了它,它的工作方式与我所希望的完全相同。速度没问题,我只需要它在小桌子上的计划任务。 Thx再次 – itd 2010-08-25 19:27:56