这是PostgreSQL的默认行为,是一个像这样的搜索路径:
SHOW search_path;
search_path
--------------
"$user",public
有没有办法让“$ user”不区分大小写?
例如我有一个用户tp1和一个模式TP1 ......我希望他们都被视为“平等”
这甚至可能吗?
答案 0 :(得分: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