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

Liên đoàn động TẤT CẢ truy vấn trong Postgres

Đây chỉ là hướng dẫn chung mà bạn cần thực hiện trong các cú pháp chi tiết, đặc biệt.

Bạn cần tạo một thủ tục cửa hàng

Tạo vòng lặp kiểm tra information_schema.tables lọc các tên bảng bạn muốn

Bản ghi
DECLARE    
    rec record;
    strSQL text;
BEGIN

Sau đó, tạo một strSQL với mỗi bảng

 FOR rec IN SELECT table_schema, table_name
            FROM information_schema.tables                
 LOOP
     strSQL := strSQL || 'SELECT ogc_fid, wkb_geometry FROM ' || 
               rec.table_schema || '.' || rec.table_name || ' UNION ';
 END LOOP;

-- have to remove the last ' UNION ' from strSQL    

strSQL := 'SELECT  row_number() over (ORDER BY a.ogc_fid) AS qid,
         a.wkb_geometry AS geometry FROM (' || strSQL || ')';

EXECUTE strSQL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc PostgreSQL, được kiểm tra khi cam kết và không sớm hơn

  2. Lỗi Postgres:Nhiều hơn một hàng được trả về bởi một truy vấn con được sử dụng làm biểu thức

  3. Chọn hàng đã mở khóa trong Postgresql

  4. Tìm hiểu xem người dùng có được phép chọn / cập nhật / ... một bảng / hàm / ... trong PostgreSQL hay không

  5. PGError:ERROR:tổng hợp không được phép trong mệnh đề WHERE trên truy vấn AR của một đối tượng và has_many đối tượng của nó