我有一大組用戶定義的過程需要在幾個單獨的目錄(數據庫)上使用。如何在所有數據庫中創建postgres用戶定義的函數?
通常在pg_catalog.pg_proc中看到的內置過程似乎是 ,反映在所有數據庫的pg_catalog模式中。我希望在postgres數據庫中創建一個函數可能會使其全局可用,但是不會,無論是在postgres.pg_catalog還是postgres.public模式中創建。
有誰知道我怎麼可以讓用戶定義的程序普遍可用?
我嘗試僞造命名空間和所有者,授予執行公共,並在我的左肩(而不是在滿月)持有一隻黑貓。
將它設置爲擴展工作嗎? (這可能需要爲我環境的一些談判和finagling是我沒有嘗試過的唯一原因。)提前
感謝
你可以把這個函數放在模板數據庫中,任何新的數據庫都可以擁有它。否則擴展是你最好的選擇 –
讓它在模板中會讓它變成中途的一半,但是讓更多的同樣東西更新的維護令人頭疼。 我會嘗試擴展。 謝謝,尼爾。 – user8446599
成功安裝了我的第一個postgres擴展,但它仍然有同樣的問題。 我在postgres架構中創建了它,並且可以在那裏成功調用它,但是從沙箱模式調用喚起'錯誤:函數...不存在'。投訴。 我不禁想到我錯過了其他需要完成的事情。 在postgres.pg_catalog.pg_available_extensions中,plpgsql以1.0作爲'installed_version'的值列出 - 這讓我認爲plpgsql本身 以這種方式加載。 (顯然它隨處可用。) 有什麼建議嗎? – user8446599