Jestem nowy w aws, czy ktoś może mi powiedzieć, jakie są odpowiedniki przesunięć ku czerwieni z poleceniami mysql?
show tables -- redshift command
describe table_name -- redshift command
Odpowiedzi:
Wszystkie informacje można znaleźć w PG_TABLE_DEF
tabeli, dokumentacji .
Lista wszystkich tabel w public
schemacie (domyślnie) - show tables
odpowiednik:
SELECT DISTINCT tablename
FROM pg_table_def
WHERE schemaname = 'public'
ORDER BY tablename;
Opis wszystkich kolumn z tabeli o nazwie nazwa_tabeli - describe table
odpowiednik:
SELECT *
FROM pg_table_def
WHERE tablename = 'table_name'
AND schemaname = 'public';
select distinct table_name from information_schema.columns where table_schema = 'public'
.
pg_table_def
tabela nie zawiera żadnych informacji o tej tabeli. Zapytanie sugerowane przez @j_c - information_schema
zamiast tego działa.
Musiałem wybrać ze schematu informacji, aby uzyskać szczegółowe informacje o moich tabelach i kolumnach; na wypadek, gdyby to komuś pomogło:
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
, należy dodać do schematu search_path: SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
. Zdecydowanie nie intuicyjnie ...
Lub po prostu:
\dt
pokazać tabele
\d+ <table name>
opisać tabelę
Edycja: działa przy użyciu klienta wiersza poleceń psql
\dt
, dostanę Error: Syntax error at or near "\"
. Czy uzyskujesz dostęp do Przesunięcia ku czerwieni w inny sposób?
Odpowiedź Tomasza Tybulewicza to dobra droga.
SELECT * FROM pg_table_def WHERE tablename = 'YOUR_TABLE_NAME' AND schemaname = 'YOUR_SCHEMA_NAME';
Jeśli nazwa schematu nie jest zdefiniowana w ścieżce wyszukiwania, zapytanie wyświetli pusty wynik. Najpierw sprawdź ścieżkę wyszukiwania za pomocą poniższego kodu.
SHOW SEARCH_PATH
Jeśli nazwa schematu nie jest zdefiniowana w ścieżce wyszukiwania, możesz zresetować ścieżkę wyszukiwania.
SET SEARCH_PATH to '$user', public, YOUR_SCEHMA_NAME
Możesz użyć - desc /, aby zobaczyć definicję widoku / tabeli w Przesunięciu ku czerwieni. Używam Workbench / J jako klienta SQL dla Redshift i podaje definicję w zakładce Komunikaty obok zakładki Wynik.
W poniższym poście udokumentowałem zapytania, aby pobrać komentarze TABLE i COLUMN z Redshift. https://sqlsylvia.wordpress.com/2017/04/29/redshift-comment-views-documenting-data/
Cieszyć się!
Komentarze do tabeli
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 ;
Komentarze do kolumn
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;
Skrót
\ d, aby wyświetlić wszystkie tabele
\ d nazwa tabeli opisująca tabelę
\? aby uzyskać więcej skrótów do przesunięcia ku czerwieni
Możesz po prostu użyć poniższego polecenia, aby opisać tabelę.
desc table-name
lub
desc schema-name.table-name