2010-08-25 84 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