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は、検索パスに含まれているスキーマ内のテーブルの情報のみを返します。 リンク