Подтвердить что ты не робот

Показывать таблицы, описывать таблицы, эквивалентные красному смещению

Я новичок в aws, может ли кто-нибудь сказать мне, что эквиваленты redshifts для команд mysql?

show tables -- redshift command
describe table_name -- redshift command
4b9b3361

Ответ 1

Вся информация содержится в таблице 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';

Ответ 2

Мне нужно было выбрать из информационной схемы, чтобы получить подробную информацию о моих таблицах и столбцах; в случае, если это кому-то поможет:

SELECT * FROM information_schema.tables
WHERE table_schema = 'myschema'; 

SELECT * FROM information_schema.columns
WHERE table_schema = 'myschema' AND table_name = 'mytable'; 

Ответ 3

Или просто:

\dt для отображения таблиц

\d+ <table name> для описания таблицы

Изменить: работает с использованием клиента командной строки psql

Ответ 4

Tomasz Tybulewicz ответ - хороший способ пойти.

SELECT * FROM pg_table_def WHERE tablename = 'YOUR_TABLE_NAME' AND schemaname = 'YOUR_SCHEMA_NAME';

Если имя схемы не определено в пути поиска, этот запрос покажет пустой результат. Сначала проверьте путь поиска по нижнему коду.

SHOW SEARCH_PATH

Если имя схемы не определено в пути поиска, вы можете reset путь поиска.

SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME

Ответ 5

Вы можете использовать - desc/для просмотра определения вида/таблицы в Redshift. Я использовал Workbench/J в качестве клиента SQL для Redshift, и он дает определение на вкладке "Сообщения" рядом с вкладкой "Результат".

Ответ 6

В следующем сообщении я задокументировал запросы, чтобы получить комментарии TABLE и COLUMN от Redshift. 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;

Ответ 7

Вы можете просто использовать приведенную ниже команду для описания таблицы.

desc table-name

или

desc schema-name.table-name