2010-08-23 81 views
1

我有一個數據庫,每個用戶都有一個模式。postgresql在多個模式下的請求

有沒有一種方法來查詢每個模式中的表?

是這樣的:select id, name from *.simulation沒有工作...

謝謝您的幫助!

+0

更多詳細信息:其結果必然是這樣的「選擇ID,名稱來自user1.simulation工會選擇ID,名稱來自user2.simulation工會......」 – 2010-08-23 09:37:43

回答

3

不,您將需要編寫一個函數 - 無論您使用何種語言的服務器端函數或客戶端函數 - 對每個模式執行一次查詢。

您也可以創建一個在所有模式之間進行UNION ALL的VIEW,但是如果您的模式被動態地添加和刪除,這將是很多工作。

+0

謝謝你,我試着寫一個存儲程序,有一些困難...(另一個問題:http://stackoverflow.com/questions/3546488/postgresql-stored-procedure-with-querie-on-several-schema) – 2010-08-23 10:02:14

0

是的你可以使用SET search_path TO ...指向所有模式。如果您不知道模式的所有名稱,請將其包裝在首先選擇所有模式的函數中,然後設置整個search_path。

http://www.postgresql.org/docs/current/interactive/sql-set.html

+0

這仍然只會讓你從表中列出的第一個模式具有一個名稱,並非全部都是一次。 – 2010-08-23 12:07:43

+0

你是對的,忘了那個細節...... :( – 2010-08-23 12:25:17