Redshiftでテーブルを作成します。テーブル定義を検索しようとすると、次のクエリを実行してinformation_schema.columns
から結果を取得します。
select * from information_schema.columns
where table_name = 'table' and table_schema='schema'
ただし、pg_catalog.pg_table_def
に対してクエリを実行すると、結果が返されません。
select * from pg_catalog.pg_table_def
where tablename = 'table' and schemaname = 'schema'
誰かがこれがなぜ起こっているのか理解するのを手伝ってくれる?テーブルは、使用しているアカウントによって作成および所有されます。
小切手 show search_path;
を使用して、テーブルが作成された現在のパスにいることを確認します。元のAWS redshift documentation に記載されています。
PG_TABLE_DEFは、ユーザーに表示されるテーブルに関する情報のみを返します。
欲しいものを手に入れるには
set search_path to '$user', '<#your_schema#>'; select * from pg_catalog.pg_table_def where tablename = '<#your_table#>';
お役に立てば幸いです。