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
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';
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';
Ou simplement:
\dt
pour afficher les tableaux
\d+ <table name>
décrire une table
Edition: fonctionne avec le client de ligne de commande psql
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
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.
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;