web-dev-qa-db-fra.com

Afficher les tables, décrire les tables équivalentes en redshift

Je suis nouveau sur aws, quelqu'un peut-il me dire quels sont les équivalents de redshifts aux commandes mysql?

show tables -- redshift command
describe table_name -- redshift command
71
sas

Toutes les informations peuvent être trouvées dans un PG_TABLE_DEF table, documentation .

Liste de toutes les tables dans un schéma public (par défaut) - show tables équivalent:

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

Description de toutes les colonnes d'une table appelée nom_table - describe table équivalent:

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

Je devais choisir dans le schéma d'information pour obtenir des détails sur mes tables et mes colonnes; au cas où cela aiderait quelqu'un:

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

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

Ou simplement:

\dt pour afficher les tableaux

\d+ <table name> décrire une table

Edition: fonctionne avec le client de ligne de commande psql

33
Matt

Tomasz Tybulewicz réponse est un bon moyen d'aller.

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

Si le nom du schéma n'est pas défini dans le chemin de recherche, cette requête affichera un résultat vide. S'il vous plaît d'abord vérifier le chemin de recherche par code ci-dessous.

SHOW SEARCH_PATH

Si le nom de schéma n'est pas défini dans le chemin de recherche, vous pouvez réinitialiser le chemin de recherche.

SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
8
Kishan Pandey

Vous pouvez utiliser - desc/pour voir la définition de vue/table dans Redshift. J'utilise Workbench/J en tant que client SQL pour Redshift, qui donne la définition dans l'onglet Messages en regard de l'onglet Résultat.

1

Dans le post suivant, j'ai documenté des requêtes pour récupérer des commentaires TABLE et COLUMN de Redshift. https://sqlsylvia.wordpress.com/2017/04/29/redshift-comment-views-documenting-data/

Prendre plaisir!

Commentaires de la table

    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 ;

Commentaires sur la colonne

    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;
0
Sylvia