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

Chọn (truy xuất) tất cả các bản ghi từ nhiều lược đồ bằng Postgres

Với kế thừa như @Denis đã đề cập, điều này sẽ rất đơn giản. Cũng hoạt động cho Postgres 8.4. Hãy chắc chắn xem xét các hạn chế .

Về cơ bản, bạn sẽ có một bảng chính, tôi cho rằng trong một lược đồ chính:

CREATE TABLE master.product (title text);

Và tất cả các bảng khác trong schemata khác nhau inherit từ đó, có thể thêm nhiều cột cục bộ hơn:

CREATE TABLE a.product (product_id serial PRIMARY KEY, col2 text)
INHERITS (master.product);

CREATE TABLE b.product (product_id serial PRIMARY KEY, col2 text, col3 text)
INHERITS (master.product);

vv

Các bảng không nhất thiết phải chia sẻ cùng một tên hoặc lược đồ.
Sau đó, bạn có thể truy vấn tất cả các bảng chỉ trong một cú ngã nhào:

SELECT title, tableoid::regclass::text AS source
FROM   master.product
WHERE  title ILIKE '%test%';

tableoid::regclass::text ?
Đó là một cách tiện dụng để cho biết nguồn của mỗi hàng. Chi tiết:

  • Tìm hiểu lược đồ nào dựa trên các giá trị của bảng

SQL Fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chức năng cửa sổ hoặc Biểu thức bảng thông thường:đếm các hàng trước đó trong phạm vi

  2. Chọn số hàng trong postgres

  3. Làm thế nào để phát hiện truy vấn giữ khóa trong Postgres?

  4. Thiết lập đa trung tâm dữ liệu với PostgreSQL

  5. Cách cài đặt nhiều máy chủ PostgreSQL trên RedHat Linux