PostgreSQL डेटाबेस से केवल स्थानिक तालिकाओं का चयन?


10

मेरे डेटाबेस में स्थानिक और गैर-स्थानिक दोनों तालिकाएँ हैं, लेकिन मैं क्वेरी से केवल स्थानिक तालिका प्राप्त करना चाहता हूं।

केवल स्थानिक तालिकाओं का चयन करने के लिए कोई सुझाव। 'The_geom' स्थानिक तालिका में ज्यामिति स्तंभ है।

अन्यथा, क्या इसके स्तंभ नाम से तालिकाओं का चयन करना संभव है।

मैंने इस कोड के साथ कोशिश की select relname from pg_stat_user_tables WHERE schemaname='public'; लेकिन इससे हमें सभी तालिका नाम मिलते हैं।

जवाबों:


16

सभी स्थानिक तालिका संदर्भ ज्यामिति_कोल्यूम मेटाडेटा तालिका में आयोजित किए जाते हैं। इसलिए कोशिश करें:

select * from geometry_columns

और आपको सिर्फ स्थानिक टेबल मिलना चाहिए


बहुत बहुत धन्यवाद ... मुझे लगता है कि मैं एक साधारण सी बात याद कर रहा हूं
किशोर

2
मुझे एक और कोड मिला, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
किशोर

yip- यह लंबा रास्ता है :-)
Mapoholic

हाँ, आप सही हैं।
किशोर

@ किशोर, आपको अपनी टिप्पणी को "उत्तर" के रूप में जोड़ना चाहिए, बस लोग इसे एक विकल्प के रूप में देखते हैं, भले ही इसकी स्थापना की गई हो कि मैपोहॉलिक का उत्तर पसंदीदा तरीका हो सकता है।
रयानKalton

2

छोटा रास्ता

select * from geometry_columns

गहरा रास्ता

SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom' or column_name = 'wkb_geometry'

दूसरा विकल्प काम करना चाहिए, भले ही ज्यामिति की सूचनाएँ हटा दी गई हों। यदि आप अपने डेटाबेस को खिलाने के लिए ogr2ogr टूल का उपयोग करते हैं तो 'wkb_geometry' ज्यामिति डेटा कॉलम का डिफ़ॉल्ट नाम है।


2

एक और डेटाबेस में केवल स्थानिक तालिकाओं का चयन करने के लिए ..

SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'`

इस कोड का उपयोग करके हम इसके कॉलम नाम को जानकर टेबल की जानकारी भी प्राप्त कर सकते हैं।

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