Redshift 表没有显示在模式表中?

Som*_*Guy 14 redshift

在 Redshift 上,为什么我的表没有显示在以下查询中?它确实存在,如我运行的下一个查询所示。我想要一种列出模式的所有表的方法:

mydb=# select distinct(tablename) from pg_table_def where schemaname = 'db';
 tablename 
-----------
(0 rows)

mydb=# \d db.some_table
                    Table "db.some_table"
     Column      |            Type             | Modifiers 
-----------------+-----------------------------+-----------
...correct info shows up here...
...but nothing showed up above?
Run Code Online (Sandbox Code Playgroud)

小智 15

Redshift 中的PG_TABLE_DEF仅返回有关用户可见的表的信息,换句话说,它只会向您显示在变量 search_path 中定义的架构中的表。如果 PG_TABLE_DEF 未返回预期结果,请验证search_path 参数是否设置正确以包含相关模式。

尝试这个 -

mydb=# set search_path="$user",db;
Run Code Online (Sandbox Code Playgroud)

然后运行您的查询 -

mydb=# select tablename from pg_table_def where schemaname = 'db';
Run Code Online (Sandbox Code Playgroud)


小智 1

PG_TABLE_DEF 将仅返回搜索路径中包含的模式中的表的信息。 关联