私はawsが初めてです。誰もがmysqlコマンドに相当するredshiftsを教えてもらえますか?
show tables -- redshift command
describe table_name -- redshift command
すべての情報は、PG_TABLE_DEF
テーブル、 ドキュメント にあります。
public
スキーマ内のすべてのテーブルのリスト(デフォルト)-show tables
と同等:
SELECT DISTINCT tablename
FROM pg_table_def
WHERE schemaname = 'public'
ORDER BY tablename;
table_nameと呼ばれるテーブルのすべての列の説明-describe table
と同等:
SELECT *
FROM pg_table_def
WHERE tablename = 'table_name'
AND schemaname = 'public';
テーブルと列の詳細を取得するには、情報スキーマから選択する必要がありました。それが誰かを助ける場合:
SELECT * FROM information_schema.tables
WHERE table_schema = 'myschema';
SELECT * FROM information_schema.columns
WHERE table_schema = 'myschema' AND table_name = 'mytable';
または単に:
\dt
はテーブルを表示します
\d+ <table name>
はテーブルを記述します
編集:psqlコマンドラインクライアントを使用して動作します
Tomasz Tybulewiczの答えは良い方法です。
SELECT * FROM pg_table_def WHERE tablename = 'YOUR_TABLE_NAME' AND schemaname = 'YOUR_SCHEMA_NAME';
スキーマ名が検索パスで定義されていない場合、そのクエリは空の結果を表示します。最初に以下のコードで検索パスを確認してください。
SHOW SEARCH_PATH
スキーマ名が検索パスで定義されていない場合、検索パスをリセットできます。
SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
-desc /を使用して、Redshiftでビュー/テーブルの定義を表示できます。 Workbench/JをRedshiftのSQLクライアントとして使用しており、[結果]タブに隣接する[メッセージ]タブで定義を提供します。
次の投稿では、RedshiftからTABLEおよびCOLUMNコメントを取得するクエリを文書化しました。 https://sqlsylvia.wordpress.com/2017/04/29/redshift-comment-views-documenting-data/
楽しい!
テーブルのコメント
SELECT n.nspname AS schema_name
, pg_get_userbyid(c.relowner) AS table_owner
, c.relname AS table_name
, CASE WHEN c.relkind = 'v' THEN 'view' ELSE 'table' END
AS table_type
, d.description AS table_description
FROM pg_class As c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
LEFT JOIN pg_description As d
ON (d.objoid = c.oid AND d.objsubid = 0)
WHERE c.relkind IN('r', 'v') AND d.description > ''
ORDER BY n.nspname, c.relname ;
列コメント
SELECT n.nspname AS schema_name
, pg_get_userbyid(c.relowner) AS table_owner
, c.relname AS table_name
, a.attname AS column_name
, d.description AS column_description
FROM pg_class AS c
INNER JOIN pg_attribute As a ON c.oid = a.attrelid
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
LEFT JOIN pg_description As d
ON (d.objoid = c.oid AND d.objsubid = a.attnum)
WHERE c.relkind IN('r', 'v')
AND a.attname NOT
IN ('cmax', 'oid', 'cmin', 'deletexid', 'ctid', 'tableoid','xmax', 'xmin', 'insertxid')
ORDER BY n.nspname, c.relname, a.attname;