[amazon-web-services] 테이블 표시, redshift에서 동등한 테이블 설명

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;


답변

지름길

\ d 모든 테이블 표시

\ d 테이블을 설명하는 테이블 이름

\? redshift에 대한 더 많은 단축키