Redshift

Redshift 表未顯示在模式表中?

  • May 17, 2021

在 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?

Redshift 中的PG_TABLE_DEF僅返回有關使用者可見的表的資訊,換句話說,它只會顯示在變數 search_path 中定義的模式中的表。如果 PG_TABLE_DEF 未返回預期結果,請驗證search_path 參數是否設置正確以包含相關模式。

嘗試這個 -

mydb=# set search_path="$user",db;

然後執行您的查詢 -

mydb=# select tablename from pg_table_def where schemaname = 'db';

PG_TABLE_DEF 將只返回搜尋路徑中包含的模式中的表的資訊。 關聯

引用自:https://dba.stackexchange.com/questions/94096