我有多个模式,每个模式都包含一个名为“t”的表。
如何在?
中找出评估“select * from t”的模式示例:
create schema one;
create schema two;
create schema three;
create table one.t(i int);
create table two.t(i int);
set search_path to one,two;
select magic_function('t'); -- returns 'one'
set search_path to two,one;
select magic_function('t'); -- returns 'two'
set search_path to three,two,one;
select magic_function('t'); -- returns 'two'
在这种情况下什么是“magic_function”?
答案 0 :(得分:2)
这里你不需要fn()
- 只需plain选择:
t=# set search_path to one,two;
SET
t=# select relname, relnamespace::regnamespace from pg_class where oid = 't'::regclass;
relname | relnamespace
---------+--------------
t | one
(1 row)
t=# set search_path to two,one;
SET
t=# select relname, relnamespace::regnamespace from pg_class where oid = 't'::regclass;
relname | relnamespace
---------+--------------
t | two
(1 row)
当然,如果你要求,它是可以包装的