Hợp nhất nhiều bảng thành một bảng mới trong PostGIS


12

Tôi đang tìm cách hợp nhất một số bảng riêng lẻ vào một bảng mới trong PostGIS. Đây là một nhiệm vụ dễ dàng khi làm việc với dữ liệu Shapefile, nhưng tôi không chắc làm thế nào để làm điều này trong PostGIS. Mọi sự trợ giúp sẽ rất được trân trọng. Tôi nghĩ rằng tôi sử dụng Append, nhưng tôi không chắc bắt đầu từ đâu.

Câu trả lời:


16

(Kiểm tra trước chuyến bay: các thuộc tính có giống nhau trong tất cả các bảng gốc không? Kiểu hình học có giống hệt nhau trong tất cả các bảng không?)

Bạn có thể

  1. trước tiên hãy tạo bảng (trống), sau đó sử dụng CHERTN VÀO ... CHỌN ... TỪ để lấy tất cả dữ liệu từ mỗi bảng gốc vào bảng đã hợp nhất.
  2. Tạo bảng mới từ một tuyên bố UNION lớn.

Đối với 1 nó có thể đi:

CREATE TABLE merged (id serial primary key, attrib1 integer, attrib2 varchar(15),....);
SELECT AddGeometryColumn('merged','geom',<SRID>,'<FEATURE_TYPE>,'XY');
INSERT INTO merged (attrib1, attrib2, ...., geom) SELECT attribA, attribB,...,geom FROM table_1;
INSERT INTO merged (attrib1, attrib2, ...., geom) SELECT attribA, attribB,...,geom FROM table_2;

và như thế...

Đối với tùy chọn 2:

CREATE TABLE merged AS( 
SELECT attribA, attribB,...,geom FROM table_1
UNION 
SELECT attribA, attribB,...,geom FROM table_2
UNION
.... 
);
SELECT Populate_Geometry_Columns('merged'::regclass);

HTH, Micha


Cảm ơn Micha, tôi sẽ thử nó. Có, tất cả các bảng có cùng thuộc tính và chúng có cùng kiểu hình học. Cảm ơn một lần nữa ...
Ryan Garnett

Tôi đã thử và tôi nhận được một lỗi liên quan đến XY. Tôi biết tôi đang đặt sai, vì tôi không chắc chắn về những gì tôi nên sử dụng ở đó. Đây là truy vấn của tôi và phản hồi đầu ra. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.
Ryan Garnett

CREATE TABLE pbear_pp (khóa chính id nối tiếp, tên thực thể varchar (40)); CHỌN AddGeometryColumn ('pbear_pp', 'geom', '- 1', 'đa giác', 'XY'); XÁC NHẬN VÀO pbear_pp (tên thực thể, geom) CHỌN tên thực thể, geom TỪ nts250k.nts250k_043e_poly; XÁC NHẬN VÀO pbear_pp (tên thực thể, geom) CHỌN tên thực thể, geom TỪ nts250k.nts250k_043f_poly; ETC ETC ...
Ryan Garnett

THÔNG BÁO: CREATE TABLE sẽ tạo ra chuỗi ngầm "pbear_pp_id_seq" cho cột nối tiếp "pbear_pp.id" THÔNG BÁO: CREATE TABLE / PRIMARY KEY sẽ tạo tiềm ẩn chỉ số "pbear_pp_pkey" cho bảng "pbear_pp" ERROR: cú pháp đầu vào không hợp lệ cho số nguyên: "XY"
Ryan Garnett

1
sử dụng 2 thay vì 'XY' vì đối số đó chỉ định kích thước.
lynxlynxlynx
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.