2016-08-16 235 views
0

我想在PostgreSQL中從regclass獲取Tablename。我已經找到了解決辦法,但我沒有感覺這麼喜歡它:從PostgreSQL中的regclass獲取表名

SELECT split_part('datastore.inline'::regclass::TEXT, '.', 2); 

是否有專門的功能在Postgre從regclass的提取表名?

回答

2

您可以查詢pg_class

select relname 
from pg_class 
where oid = 'datastore.inline'::regclass; 

沒有內置的功能,但你可以創建自己的一個:

create or replace function get_relname(regclass) 
returns name language sql as $$ 
    select relname 
    from pg_class 
    where oid = $1 
$$; 

select get_relname('datastore.inline'::regclass);