Je suis nouveau sur aws, quelqu’un peut-il me dire quels sont les équivalents de redshifts aux commandes de mysql?
show tables -- redshift command describe table_name -- redshift command
Toutes les informations peuvent être trouvées dans une table PG_TABLE_DEF
, documentation .
Liste de toutes les tables d’un schéma public
(par défaut) – show tables
équivalentes:
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 de la describe table
:
SELECT * FROM pg_table_def WHERE tablename = 'table_name' AND schemaname = 'public';
J’ai dû 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';
Ou simplement:
\dt
pour montrer des tableaux
\d+
pour décrire une table
Edit: Fonctionne avec le client de ligne de commande psql
Tomasz Tybulewicz répond bien.
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. Veuillez d’abord vérifier le chemin de recherche en dessous du code.
SHOW SEARCH_PATH
Si le nom du 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
Vous pouvez utiliser – desc / pour voir la définition de la vue / table dans Redshift. J’ai utilisé Workbench / J en tant que client SQL pour Redshift et il donne la définition dans l’onglet Messages adjacent à l’onglet Résultat.
Dans le post suivant, j’ai documenté des requêtes pour récupérer les commentaires TABLE et COLUMN de Redshift. https://sqlsylvia.wordpress.com/2017/04/29/redshift-comment-views-documenting-data/
Prendre plaisir!
Commentaires de 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 ;
Colonne Commentaires
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_atsortingbute 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;
Vous pouvez simplement utiliser la commande ci-dessous pour décrire une table.
desc table-name
ou
desc schema-name.table-name