PostGIS में एक नई तालिका में एकाधिक तालिकाएँ मर्ज करें


13

मैं PostGIS में कई अलग-अलग तालिकाओं को एक नई तालिका में मर्ज करना चाह रहा हूं। शेपफाइल डेटा के साथ काम करते समय यह एक आसान काम है, लेकिन मैं अनिश्चित हूं कि पोस्टगिस में ऐसा कैसे किया जाए। किसी भी तरह की सहायता का स्वागत किया जाएगा। मुझे लगता है कि मैं एपेंड का उपयोग करता हूं, लेकिन मैं अनिश्चित हूं कि कहां से शुरू करूं।

जवाबों:


17

(प्री-फ़्लाइट-चेक: क्या विशेषताएँ सभी मूल तालिकाओं में समान हैं? क्या ज्यामिति सभी तालिकाओं में समान है?)

आप या तो यह कर सकते हैं

  1. पहले (खाली) तालिका बनाएं, फिर INSERT INTO ... SELECT ... FROM का उपयोग करके सभी डेटा को प्रत्येक मूल तालिका से मर्ज किए गए में प्राप्त करें।
  2. एक बड़े UNION स्टेटमेंट से नई तालिका बनाएं।

1 के लिए यह जा सकता है:

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;

और इसी तरह...

विकल्प 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, मीका


धन्यवाद मीका, मैं यह कोशिश करूँगा। हां, सभी तालिकाओं में एक ही विशेषता है और वे एक ही ज्यामिति प्रकार हैं। धन्यवाद फिर से ...
रयान गार्नेट

मैंने कोशिश की है और मुझे XY से जुड़ी एक त्रुटि मिल रही है। मुझे पता है कि मैं गलत काम कर रहा हूं, क्योंकि मैं अनिश्चित हूं कि मुझे वहां क्या इस्तेमाल करना चाहिए। यहाँ मेरी क्वेरी और आउटपुट प्रतिक्रिया है। कोई भी मदद बहुत अच्छी रहेगी।
रियान गार्नेट

बनाएँ तालिका pbear_pp (आईडी सीरियल प्राथमिक कुंजी, एंटेरनाम varchar (40)); AddGeometryColumn ('pbear_pp', 'geom', '- 1', 'polygon', 'XY') का चयन करें; INSERT INTO pbear_pp (unitname, geom) SELECT एंट्री, geom FROM nts250k.nts250k_043e_poly; INSERT INTO pbear_pp (unitname, geom) SELECT इकाई नाम, geom FROM nts250k.nts250k_043f_poly; ETC ETC ...
रयान गारनेट

सूचना: टेबल बनाएं अंतर्निहित अनुक्रम धारावाहिक स्तंभ के लिए "pbear_pp_id_seq" पैदा करेगा "pbear_pp.id" नोटिस: टेबल / प्राथमिक कुंजी बनाने अंतर्निहित सूचकांक "pbear_pp_pkey" तालिका के लिए "pbear_pp" त्रुटि पैदा करेगा: अमान्य इनपुट वाक्य रचना पूर्णांक के लिए: "XY"
रयान गार्नेट

1
'XY' के बजाय 2 का उपयोग करें क्योंकि यह तर्क आयामों को निर्दिष्ट करता है।
lynxlynxlynx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.