Postgresql
通過擴展在架構內添加的訪問運算符
我正在編寫一個使用 postgres 的應用程序。每個微服務在數據庫中使用自己的模式。
所以連接到我使用這個 jdbc 字元串的數據庫模式:
jdbc:postgresql://${db.host}/${db.name}?currentSchema=${schema}
這種方法有效,因此每個 sql 語句都可以使用模式內的表,而不會意外訪問其他服務模式的危險。
但在一個模式中,我想使用 earthdistance 擴展。我只設法在沒有設置架構的情況下安裝它,當我在沒有 currentSchema 參數的情況下連接到數據庫時,我可以訪問 <@> 運算符來計算距離。但是使用參數 postgres 抱怨它無法找到操作員。
當我連接 currentSchema 參數時,有沒有辦法訪問公共命名空間中的運算符?
我有點迷失在這裡:-(
您可以在呼叫它們時對運算符進行模式限定。
例如,而不是寫
SELECT current <@> destination
你可以寫:
SELECT current operator(public.<@>) destination
有關更多資訊,請參閱操作員呼叫