2010-02-23 14 views
0

有沒有辦法從database2中的函數更新database1中的表(兩個數據庫都在同一個服務器上)?基本上在PostgreSQL中交叉數據庫更新。如何在PostgreSQL中從database2中的函數更新database1中的表?

函數由觸發器執行,但它不應該。

- = edit = - 我知道我可以使用DBLink,但我想盡可能少地修改源數據庫。我正在尋找其他一些選項。

回答

0

如果DBLink可用,DBLink將是標準方法。如果缺少這一點,如果您安裝了PL/pgperl之類的過程語言(PL/pgsql除外),則可以使用該語言連接到數據庫2並調用更新語句。或者您可以使用過程語言來調用一個調用psql來執行更新的shell腳本。

+0

好吧,似乎沒有其他選擇。我得出的結論是,與我的應用程序部署dblink.dll畢竟不會是那麼糟糕的主意。 感謝您的回答。 – kyrisu

1

您可以將兩個數據庫放在同一個Postgresql數據庫中,但使用不同的模式。

這樣,它們仍然是邏輯上分開的,並且沒有名稱衝突,但可以訪問模式之間的對象。

0

目前尚不清楚你在找什麼。

你知道PostgreSQL中的數據庫是獨立的,你不能直接訪問另一個(按設計)。

你知道dblink擴展允許你連接兩個數據庫(相同或不同的服務器)。

你會發現dblink的擴展過於侵入性(排除small_duck合併兩個數據庫的想法,我懷疑)。

我不確定你認爲會比dblink更簡單,因爲dblink是這個區域的默認選擇。

+0

我正在做的是爲使用postgresql的應用程序編寫擴展。我想避免部署dblink儘可能少地混淆應用程序數據庫。根據回答,這似乎是唯一的方法(考慮到擴展的工作量和性能)。 – kyrisu

相關問題