Tôi có cơ sở dữ liệu postgres với nhiều lược đồ. Khi tôi kết nối với cơ sở dữ liệu từ một trình bao với psql
và tôi chạy \dt
, nó sử dụng lược đồ kết nối mặc định là công khai. Có một lá cờ tôi có thể chỉ định hoặc làm thế nào tôi có thể thay đổi giản đồ?Làm thế nào để chọn một lược đồ trong postgres khi sử dụng psql?
Trả lời
Bạn có muốn thay đổi cơ sở dữ liệu không?
\l - to display databases
\c - connect to new database
Cập nhật.
Tôi đã đọc lại câu hỏi của bạn. Để hiển thị schemas
\dn - list of schemas
Để thay đổi lược đồ, bạn có thể thử
SET search_path TO
Trong PostgreSQL hệ thống xác định bảng là có nghĩa là bằng cách làm theo một con đường tìm kiếm, mà là một danh sách các lược đồ để tìm trong.
Bảng so khớp đầu tiên trong đường dẫn tìm kiếm được lấy là giá trị mong muốn, nếu không có lỗi trùng khớp, ngay cả khi tên bảng phù hợp tồn tại trong các lược đồ khác trong cơ sở dữ liệu.
Để hiển thị đường dẫn tìm kiếm hiện tại bạn có thể sử dụng lệnh sau:
SHOW search_path;
Và để đặt schema mới trong đường dẫn, bạn có thể sử dụng:
SET search_path TO myschema;
Hoặc nếu bạn muốn nhiều schemas:
SET search_path TO myschema, public;
tham khảo: https://www.postgresql.org/docs/current/static/ddl-schemas.html
Sử dụng tên lược đồ với khoảng thời gian trong lệnh psql để lấy thông tin về lược đồ này.
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
Hiển thị danh sách các mối quan hệ trong 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)
Hiện test_schema.test_table
định nghĩa:
test=# \d test_schema.test_table
Table "test_schema.test_table"
Column | Type | Modifiers
--------+---------+-----------
id | integer |
Hiện tất cả các bảng trong 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 |
v.v ...
Tôi đã bỏ lỡ khoảng thời gian sau \ dt test_schema. mà kết quả trong "không tìm thấy thông điệp liên quan" Cảm ơn các ví dụ, làm cho nó dễ dàng hơn nhiều :) – mehany
Đây là cũ, nhưng tôi đưa kim ngạch xuất khẩu trong bí danh của tôi để kết nối với db:
alias schema_one.con="PGOPTIONS='--search_path=schema_one' psql -h host -U user -d database etc'
Và đối với schema khác:
alias schema_two.con="PGOPTIONS='--search_path=schema_two' psql -h host -U user -d database etc'
Ý tưởng hay. Tôi sẽ bỏ 'xuất' và dấu chấm phẩy trong bí danh của bạn. Bằng cách này, 'PGOPTIONS' không ở lại sau khi bạn rời khỏi psql. –
@DoronGold điểm tuyệt vời, cập nhật phản hồi. Cảm ơn – techbrownbags
chủ chốt từ:
SET search_path TO
ví dụ:
SET search_path TO your_schema_name;
- 1. Làm thế nào để sử dụng pg: psql trong heroku?
- 2. Làm thế nào để có được vào psql của một container postgres đang chạy?
- 3. Làm thế nào tôi có thể đổ nhiều lược đồ postgres bằng cách sử dụng rake db: dump: schema
- 4. Làm thế nào để nhập một lược đồ (XSD) trong tệp jar vào một lược đồ khác (XSD)
- 5. Làm thế nào để có được chèn hoặc chọn id hàng trong postgres sử dụng python
- 6. Truy vấn qua các lược đồ trong Postgres
- 7. Làm thế nào để xác định tên lược đồ trong khi chạy "syncdb" trong django?
- 8. Có thể tạo bao nhiêu lược đồ trong postgres
- 9. Nhận mã lỗi khi sử dụng psql
- 10. Làm cách nào để tạo một phần tử trong lược đồ XML tùy chọn?
- 11. Làm thế nào để mã hóa một cột trong Postgres bằng cách sử dụng Hibernate @ColumnTransformer
- 12. Làm thế nào để sử dụng khối lượng trong docker soạn cho postgres?
- 13. sử dụng lược đồ trong postgresql
- 14. Sử dụng lược đồ URL trong XCTestCase
- 15. mảng tùy chọn trong lược đồ avro
- 16. Làm thế nào để lựa chọn chiến lược thế hệ id khi sử dụng JPA và Hibernate
- 17. Sử dụng RegEx trong Lược đồ JSON
- 18. psql đặt default statement_timeout làm người dùng ở postgres
- 19. Làm thế nào để tải nhiều lược đồ vào một công cụ hoặc ứng dụng Rails?
- 20. Làm thế nào để tạo lược đồ mongoose động?
- 21. Lược đồ đánh số phiên bản nào để sử dụng?
- 22. Tôi làm cách nào để sử dụng xác thực lược đồ hiện đại/khác với .Net?
- 23. Làm thế nào để trả về một giá trị từ psql để bash và sử dụng nó?
- 24. Làm thế nào để "tên" một truy vấn trong postgres
- 25. Cách sử dụng mục lược đồ "UserComments"?
- 26. Khởi động mùa xuân: Cách sử dụng nhiều lược đồ và tự động chọn sử dụng lược đồ nào tại thời gian chạy
- 27. Làm thế nào để tạo mã Pascal từ một lược đồ XML trong Delphi Prism?
- 28. Tại sao Integration Integration có một số lược đồ XML và tôi nên sử dụng lược đồ nào?
- 29. Cách sử dụng lược đồ GraphQL để xác thực dữ liệu giống như Lược đồ JSON?
- 30. Làm cách nào để sử dụng lại các đối tượng trong lược đồ API BluePrint?
Xem xét: http://stackoverflow.com/questions/9067335/how-does-the-search-path-influence-identifier-resolution-and-the-current-schema/9067777#9067777 –