簡體   English   中英

顯示表格,描述紅移中等效的表格

[英]Show tables, describe tables equivalent in redshift

我是 aws 的新手,誰能告訴我 redshifts 與 mysql 命令的等價物是什么?

show tables -- redshift command
describe table_name -- redshift command

所有信息都可以在PG_TABLE_DEF文檔中找到

列出public模式中的所有表(默認) - show tables等效的show tables

SELECT DISTINCT tablename
FROM pg_table_def
WHERE schemaname = 'public'
ORDER BY tablename;

名為table_name的表中所有列的describe table - describe table等效:

SELECT *
FROM pg_table_def
WHERE tablename = 'table_name'
AND schemaname = 'public';

更新:

正如@Kishan Pandey 的回答所指出的,如果您要查找與public不同的架構的詳細信息,則需要set search_path to my_schema ( show search_path顯示當前搜索路徑)

列出my_schema模式中的表:

set search_path to my_schema;
select * from pg_table_def;

我必須從信息模式中進行選擇才能獲取我的表和列的詳細信息; 如果它可以幫助任何人:

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;

捷徑

\\d 顯示所有表格

\\d 表名來描述表

\\? 紅移的更多快捷方式

redshift 現在支持顯示表

show table analytics.dw_users

https://forums.aws.amazon.com/ann.jspa?annID=8641

您可以簡單地使用下面的命令來描述一個表。

desc table-name

要么

desc schema-name.table-name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM