Mam bazę danych postgres z wieloma schematami. Kiedy łączę się z bazą danych z powłoki psql
i uruchamiam \dt
, używa ona domyślnego schematu połączenia, który jest publiczny . Czy istnieje flaga, którą mogę określić lub jak mogę zmienić schemat?
postgresql
psql
Mehany
źródło
źródło
Odpowiedzi:
W PostgreSQL system określa, którą tabelę rozumiemy, podążając ścieżką wyszukiwania, czyli listą schematów do przeszukania.
Pierwsza pasująca tabela w ścieżce wyszukiwania jest traktowana jako ta, której szukano, w przeciwnym razie, jeśli nie ma dopasowania, generowany jest błąd, nawet jeśli pasujące nazwy tabel istnieją w innych schematach w bazie danych.
Aby wyświetlić aktualną ścieżkę wyszukiwania, możesz użyć następującego polecenia:
Aby umieścić nowy schemat na ścieżce, możesz użyć:
Lub jeśli chcesz mieć wiele schematów:
Źródła: https://www.postgresql.org/docs/current/static/ddl-schemas.html
źródło
Chcesz zmienić bazę danych?
Aktualizacja.
Przeczytałem ponownie twoje pytanie. Aby wyświetlić schematy
Aby zmienić schemat, możesz spróbować
źródło
źródło
Użyj nazwy schematu z kropką w komendzie psql, aby uzyskać informacje o tym schemacie.
Ustawiać:
Pokaż listę relacji w
test_schema
:Pokaż
test_schema.test_table
definicję:Pokaż wszystkie tabele w
test_schema
:itp...
źródło
To jest stare, ale umieściłem eksport w moim aliasie do łączenia się z bazą danych:
A dla innego schematu:
źródło
export
i średnik w twoich aliasach. W ten sposóbPGOPTIONS
nie pozostaje po wyjściu z psql.SET search_path
do każdego zapytania. Dziękuję Ci!słowo kluczowe:
przykład:
źródło
szybkim rozwiązaniem mogłoby być:
źródło
jeśli grasz z psql wewnątrz docker, wykonaj to w ten sposób:
źródło