Postgresql

通過擴展在架構內添加的訪問運算符

  • June 1, 2015

我正在編寫一個使用 postgres 的應用程序。每個微服務在數據庫中使用自己的模式。

所以連接到我使用這個 jdbc 字元串的數據庫模式:

jdbc:postgresql://${db.host}/${db.name}?currentSchema=${schema}

這種方法有效,因此每個 sql 語句都可以使用模式內的表,而不會意外訪問其他服務模式的危險。

但在一個模式中,我想使用 earthdistance 擴展。我只設法在沒有設置架構的情況下安裝它,當我在沒有 currentSchema 參數的情況下連接到數據庫時,我可以訪問 <@> 運算符來計算距離。但是使用參數 postgres 抱怨它無法找到操作員。

當我連接 currentSchema 參數時,有沒有辦法訪問公共命名空間中的運算符?

我有點迷失在這裡:-(

您可以在呼叫它們時對運算符進行模式限定。

例如,而不是寫

SELECT current &lt;@&gt; destination

你可以寫:

SELECT current operator(public.&lt;@&gt;) destination

有關更多資訊,請參閱操作員呼叫

引用自:https://dba.stackexchange.com/questions/102852