Mam bazę danych postgres z wieloma schematami. Po połączeniu się z bazą danych za pomocą powłoki psql
i uruchamiam \dt
, używa ona domyślnego schematu połączenia, którym jest publiczny. Czy istnieje flaga, którą mogę określić lub jak zmienić schemat?Jak wybrać schemat w postgresie podczas używania psql?
Odpowiedz
Czy chcesz zmienić bazę danych?
\l - to display databases
\c - connect to new database
Aktualizacja.
Znów przeczytałem twoje pytanie. Aby wyświetlić schematów
\dn - list of schemas
Aby zmienić schemat, można spróbować
SET search_path TO
W PostgreSQL system określa, która tabela jest przeznaczona wykonując ścieżkę przeszukiwania, który jest lista schematów, aby spojrzeć w.
Pierwsza zgodna tabela w ścieżce wyszukiwania jest uważana za pożądaną, w przeciwnym razie, jeśli nie ma zgodności, powstaje błąd, nawet jeśli pasujące nazwy tabel istnieją w innych schematach w bazie danych.
Aby wyświetlić bieżącą ścieżkę przeszukiwania można użyć następującego polecenia:
SHOW search_path;
i wprowadzenia nowego schematu w ścieżce, można użyć:
SET search_path TO myschema;
Albo jeśli chcesz wielokrotność schematy:
SET search_path TO myschema, public;
referencyjny: https://www.postgresql.org/docs/current/static/ddl-schemas.html
Użyj nazwy schematu z kropką w komendzie psql, aby uzyskać informacje o tym schemacie.
Setup:
test=# create schema test_schema;
CREATE SCHEMA
test=# create table test_schema.test_table (id int);
CREATE TABLE
test=# create table test_schema.test_table_2 (id int);
CREATE TABLE
Pokaż listę stosunków w test_schema
:
test=# \dt test_schema.
List of relations
Schema | Name | Type | Owner
-------------+--------------+-------+----------
test_schema | test_table | table | postgres
test_schema | test_table_2 | table | postgres
(2 rows)
Pokaż test_schema.test_table
definicja:
test=# \d test_schema.test_table
Table "test_schema.test_table"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Pokaż wszystkie tabele w test_schema
:
test=# \d test_schema.
Table "test_schema.test_table"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Table "test_schema.test_table_2"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
itp ...
Brakowało okresu after \ dt test_schema. co skutkuje "brakiem znalezionej wiadomości" Dzięki za przykłady, znacznie ułatwiłem :) – mehany
To jest stary, ale kładę eksportu w moim alias do podłączenia do DB:
alias schema_one.con="PGOPTIONS='--search_path=schema_one' psql -h host -U user -d database etc'
A dla innego schematu:
alias schema_two.con="PGOPTIONS='--search_path=schema_two' psql -h host -U user -d database etc'
Fajny pomysł. Pominąłbym 'export' i średnik w twoich aliasach. W ten sposób 'PGOPTIONS' nie pozostaje w pobliżu po opuszczeniu psql. –
@DoronGold świetny punkt, aktualizowanie odpowiedzi. Dzięki – techbrownbags
Słowo kluczowe:
SET search_path TO
przykład:
SET search_path TO your_schema_name;
- 1. psql ustaw domyślne statement_timeout jako użytkownika w postgresie
- 2. O indeksie klastrowym w postgresie
- 3. Jak wybrać schemat na podstawie zmiennej?
- 4. Czas wykonywania zapytań w Postgresie
- 5. Nie można wybrać z klauzuli UPDATE RETURNING w postgresie
- 6. Jak edytować funkcję w PSQL
- 7. Uzyskaj kody błędów podczas korzystania z psql
- 8. Zrób zasięg w postgresie
- 9. Dostosuj pager w psql
- 10. Kopiowanie bazy danych w postgresie
- 11. Jak wybrać profil AWS podczas używania boto3 do połączenia z CloudFront
- 12. INDEKS w Postgresie?
- 13. Równoważnik dekodowania w postgresie
- 14. jak skonfigurować komendę psql w cygwin?
- 15. Jak korzystać z pg: psql w heroku?
- 16. Jak zapobiec SIGPIPE podczas używania boost :: asio?
- 17. jak debugować dane podczas używania json/ajax
- 18. Jak wyświetlać niestandardowy kciuk podczas używania fastScrollEnabled
- 19. Jak zmienić core.autocrlf podczas używania SmartGit?
- 20. Jak zapobiec błędowi twisted.internet.error.ConnectionLo podczas używania Scrapy?
- 21. Jak ustawić odpowiedź podczas używania Swiftmailer
- 22. jak usunąć duże obiekty w postgresie
- 23. jak utworzyć duplikat roli użytkownika w postgresie
- 24. usuwanie stoperw podczas używania słowa2vec
- 25. Kolory utracone w legendzie podczas używania scale_shape_manual
- 26. wyszukaj nazwy tabel w PSQL
- 27. funkcja to_char (liczba) w postgresie
- 28. Psql lista wszystkich tabel
- 29. sqlalchemy wykorzystanie dziedziczenia w postgresie
- 30. Błąd Eclipse podczas używania Subversive
Rozważ: http://stackoverflow.com/questions/9067335/how-does-the-search-path-influence-identifier-resolution-and-the-current-schema/9067777#9067777 –