PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

sử dụng lược đồ trong postgresql

Tham số bạn đang tìm là search_path - liệt kê các lược đồ mà một truy vấn sẽ xem xét. Vì vậy, bạn có thể làm điều gì đó như:

CREATE TABLE schema1.tt ...
CREATE TABLE schema2.tt ...
CREATE FUNCTION schema1.foo() ...
CREATE FUNCTION schema2.foo() ...
SET search_path = schema1, something_else;
SELECT * FROM tt;        -- schema1.tt
SELECT * FROM schema2.tt -- schema2.tt
SELECT foo();            -- calls schema1.foo
SELECT schema2.foo();    -- calls schema2.foo

Lưu ý rằng nếu kế hoạch của truy vấn được lưu bên trong phần thân của foo () thì bạn có thể nhận được kết quả không mong muốn. Tôi khuyên bạn nên luôn liệt kê rõ ràng các lược đồ cho các bảng được tham chiếu trong các hàm plpgsql nếu bạn đang sử dụng các bảng trùng lặp. Nếu không, hãy đảm bảo rằng bạn có thử nghiệm tại chỗ để kiểm tra hành vi với chaning search_path.

Ồ - bạn cũng có thể đặt search_path một cách rõ ràng cho nội dung của một hàm - hãy xem tài liệu tham khảo TẠO CHỨC NĂNG của sách hướng dẫn để biết thêm chi tiết.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm khoảng thời gian vào dấu thời gian bằng cách sử dụng Phân đoạn Ecto

  2. Thư viện SQL tốt nhất để sử dụng trong Common Lisp là gì?

  3. PostgreSQL qua SSH Tunnel

  4. SQL Tìm tất cả con cháu trực tiếp trong một cây

  5. Số học cột ngày trong truy vấn PostgreSQL