Próbuję nauczyć się administracji PostgreSQL i zacząłem uczyć się korzystania z psql
narzędzia wiersza poleceń.
Kiedy się loguję psql --username=postgres
, jak wyświetlić listę wszystkich baz danych i tabel?
Próbowałem \d
, d
a dS+
jednak nic nie ma na liście. Utworzyłem dwie bazy danych i kilka tabel za pomocą pgAdmin III, więc wiem, że powinny być wymienione.
postgresql
tools
psql
command-line
Jonas
źródło
źródło
psql -l
psql --username=postgres -l
.Odpowiedzi:
Proszę zwrócić uwagę na następujące polecenia:
\list
lub\l
: wymień wszystkie bazy danych\dt
: wyświetl wszystkie tabele w bieżącej bazie danychNigdy nie zobaczysz tabel w innych bazach danych, tabele te nie są widoczne. Musisz połączyć się z właściwą bazą danych, aby zobaczyć jej tabele (i inne obiekty).
Aby przełączyć bazy danych:
\connect database_name
lub\c database_name
Zobacz instrukcję o psql .
źródło
\c db_name
aby połączyć się z określoną bazą danych.\dt
nie wydaje się wyświetlać wszystkich tabel w bieżącej bazie danych (wydaje się, że wyklucza te, które nie zostały znalezionesearch_path
przynajmniej w wersji 9.2)\dt *.
wyświetli listę wszystkich tabel we wszystkich schematach, bez konieczności modyfikowania ścieżki wyszukiwania.psql -U username -l
ale to nie działa z wersją slash.Zawiera listę baz danych:
Zawiera listę tabel w bieżącej bazie danych
źródło
WHERE table_schema = 'public'
ponieważ chcę porzucić tylko niestandardowe tabele.W Postgresql te polecenia terminala wyświetlają listę dostępnych baz danych
Lub polecenie brzmiało prościej:
Te polecenia drukują to na terminalu:
To są dostępne bazy danych.
W PSQL te polecenia wyświetlają listę dostępnych tabel
Musisz określić bazę danych, aby móc wyświetlić tabele w tej bazie danych.
To prowadzi do terminala psql:
Użyj polecenia
\d
oznaczającego pokaż wszystkie tabele, widoki i sekwencjeTo drukuje:
Następnie, aby wyjść z terminala psql, wpisz
\q
i naciśnij klawisz enter. LubCtrl-D
robi to samo. To są tabele w tej bazie danych.źródło
\d[S+] list tables, views, and sequences
\l
jest również skrótem od\list
. Istnieje wiele poleceń ukośnika, które można wyświetlić w psql za pomocą\?
.źródło
Aby uzyskać więcej informacji o bazie danych i liście tabel, możesz:
\l+
do listy baz danychi
\d+
aby wyświetlić listę wszystkich tabel w bieżącym schemacie ścieżka_wyszukiwania w bieżącej bazie danych.źródło
Z pg_Admin możesz po prostu uruchomić następujące operacje na bieżącej bazie danych, a uzyska wszystkie tabele dla określonego schematu:
Otrzymasz listę wszystkich stałych tabel (ogólnie tych, których szukasz). Możesz uzyskać tylko nazwy tabel, jeśli zmienisz
*
symbol wieloznaczny na tylkotable_name
. Publicznytable_schema
jest domyślnym schematem dla większości baz danych, chyba że administrator skonfigurował nowy schemat.źródło
Możliwe, że wstawiłeś tabele do schematu, który nie znajduje się na ścieżce wyszukiwania, lub domyślny, tj. Publiczny, więc tabele nie będą wyświetlane przy użyciu \ dt. Jeśli używasz schematu o nazwie powiedzmy dane, możesz to naprawić, uruchamiając,
alter database <databasename> set search_path=data, public;
Wyjdź i ponownie wprowadź psql, a teraz \ dt wyświetli również tabele w danych schematu.
źródło
set search_path=data, public;
by to