Soy nuevo en aws, ¿alguien puede decirme cuáles son los equivalentes de corrimientos al rojo a los comandos de mysql?
show tables -- redshift command
describe table_name -- redshift command
Respuestas:
Toda la información se puede encontrar en una PG_TABLE_DEF
tabla, documentación .
Listado de todas las tablas en un public
esquema (predeterminado) - show tables
equivalente:
SELECT DISTINCT tablename
FROM pg_table_def
WHERE schemaname = 'public'
ORDER BY tablename;
Descripción de todas las columnas de una tabla llamada table_name - describe table
equivalente:
SELECT *
FROM pg_table_def
WHERE tablename = 'table_name'
AND schemaname = 'public';
select distinct table_name from information_schema.columns where table_schema = 'public'
en su lugar.
pg_table_def
tabla no tiene ninguna información sobre esa tabla. La consulta sugerida por @j_c - consultar en su information_schema
lugar funciona.
Tuve que seleccionar del esquema de información para obtener detalles de mis tablas y columnas; en caso de que ayude a alguien:
SELECT * FROM information_schema.tables
WHERE table_schema = 'myschema';
SELECT * FROM information_schema.columns
WHERE table_schema = 'myschema' AND table_name = 'mytable';
pg_table_def
, debe agregar el esquema para su search_path: SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
. Definitivamente no es intuitivo ...
O simplemente:
\dt
para mostrar tablas
\d+ <table name>
describir una mesa
Editar: funciona con el cliente de línea de comandos psql
\dt
lo consigo Error: Syntax error at or near "\"
. ¿Está accediendo a Redshift de alguna otra manera?
La respuesta de Tomasz Tybulewicz es un buen camino a seguir.
SELECT * FROM pg_table_def WHERE tablename = 'YOUR_TABLE_NAME' AND schemaname = 'YOUR_SCHEMA_NAME';
Si el nombre del esquema no está definido en la ruta de búsqueda, esa consulta mostrará un resultado vacío. Primero verifique la ruta de búsqueda con el siguiente código.
SHOW SEARCH_PATH
Si el nombre del esquema no está definido en la ruta de búsqueda, puede restablecer la ruta de búsqueda.
SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
Puede usar - desc / para ver la definición de vista / tabla en Redshift. He estado usando Workbench / J como cliente SQL para Redshift y da la definición en la pestaña Mensajes adyacente a la pestaña Resultado.
En la siguiente publicación, documenté consultas para recuperar comentarios TABLE y COLUMN de Redshift. https://sqlsylvia.wordpress.com/2017/04/29/redshift-comment-views-documenting-data/
¡Disfrutar!
Comentarios de la tabla
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 ;
Comentarios de columna
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;
Atajo
\ d para mostrar todas las tablas
\ d nombre de tabla para describir la tabla
\? para más atajos para el corrimiento al rojo
Simplemente puede usar el comando a continuación para describir una tabla.
desc table-name
o
desc schema-name.table-name