簡體   English   中英

在postgresql中使用模式

[英]using schemas in postgresql

我使用postgresql開發了一個應用程序,它運行良好。

現在我需要創建同一個應用程序的多個實例,但我只有一個數據庫。 所以我正在考慮使用模式,以便我可以將每個實例表分組到不同的模式中。

現在,我不想重寫我的所有函數和腳本,因此我想知道我是否可以使用一些指令來指示數據庫對特定模式進行操作。 只是為了讓它更清楚,你知道用c ++做什么嗎?

using namespace std;

這樣你就可以使用cout而不是std::cout 如果可能的話,我想使用類似的東西。

您正在尋找的參數是search_path - 它列出了查詢將查找的模式。因此,您可以執行以下操作:

CREATE TABLE schema1.tt ...
CREATE TABLE schema2.tt ...
CREATE FUNCTION schema1.foo() ...
CREATE FUNCTION schema2.foo() ...
SET search_path = schema1, something_else;
SELECT * FROM tt;        -- schema1.tt
SELECT * FROM schema2.tt -- schema2.tt
SELECT foo();            -- calls schema1.foo
SELECT schema2.foo();    -- calls schema2.foo

請注意,如果查詢的計划保存在foo()的主體內,那么您可能會得到意外的結果。 如果您使用重復的表,我建議您始終在plpgsql函數中明確列出引用表的模式。 如果沒有,請確保您已進行測試以檢查chaning search_path的行為。

哦 - 您也可以為函數體明確設置search_path - 有關詳細信息,請參閱手冊的CREATE FUNCTION參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM