使用Psycopg2获取所有模式的名称

2024-09-27 00:19:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在Python中迭代postgresqldb的所有表,在每个表中执行一个查询。为了执行查询,我需要获取它们的模式和表名,因此我想获得如下字符串的列表:“schema.tablename". 在

我用过这个,但它只列出了表的名称,所以没有用。在

select relname from pg_class where relkind='r' and relname !~ '^(pg_|sql_)';

我肯定有更简单的方法,但我一直在寻找一些没有成功的方法。。。在

感谢任何帮助,谢谢!!在


Tags: 方法字符串from名称列表schema模式where
2条回答
select
  relname,
  oid::regclass as full_name,
  relnamespace::regnamespace as schema_name
from pg_class
where relkind='r';

请注意,它不会将模式名附加到search_path参数可用的表中,这样您就可以使用上面查询中的schema_name列。在

您要将其加入pg_命名空间:

t=# select nspname||'.'||relname from pg_class join pg_namespace on relnamespace = pg_namespace.oid where relkind='r' and relname !~ '^(pg_|sql_)' limit 5;
     ?column?
         -
 public.s141
 public.events
 public.tg_rep_que
 public.t4
 public.menupoint
(5 rows)

相关问题 更多 >

    热门问题