2010-03-01 36 views
2

這是PostgreSQL的默認行爲是搜索路徑,像這樣:Postgres的架構問題

SHOW search_path; 

search_path 
-------------- 
"$user",public 

有沒有辦法讓它所以「$用戶」不區分大小寫?

比如我有一個用戶TP1和架構TP1 ......我希望他們都被看作是「平等」

這甚至可能嗎?

回答

2

永遠不要創建區分大小寫的東西,期間。永遠。它最終會令人困惑,並會強制你在使用它們時引用它們。你可以確定你的東西不區分大小寫,根本不使用雙引號。這就像是Pg的基本規則。

總之沒有你不能,但你可以添加到你的search_path。

test=# create schema "ECARROLL"; 
CREATE SCHEMA 
test=# create table "ECARROLL".foo (foobar int); 
CREATE TABLE 
test=# select * from foo; 
ERROR: relation "foo" does not exist 

如果你願意,你可以硬編碼的其他模式:SET search_path TO "$user","ECARROLL",public;

您可以腳本不區分大小寫的命名模式的查詢和設置他們在腳本環境。

test=# SELECT schema_name FROM information_schema.schemata WHERE schema_name ILIKE current_user; 
schema_name 
------------- 
ECARROLL