2010-03-01 41 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