2013-02-06 12 views
106

क्या मेरे पोस्टग्रेस डीबी में सभी टेबल सूचीबद्ध करने के लिए कोई प्रश्न उपलब्ध है।पोस्टग्रेस क्वेरी सभी तालिका नामों को सूचीबद्ध करने के लिए

मैं एक क्वेरी की तरह बाहर की कोशिश की:

SELECT table_name FROM information_schema.tables 
         WHERE table_schema='public' 

लेकिन इस क्वेरी विचारों रिटर्न भी।

मैं केवल टेबल नाम ही प्राप्त कर सकता हूं, विचार नहीं?

उत्तर

183

इस क्वेरी को क्या कहते हैं (manual से विवरण के आधार पर)?

SELECT table_name 
    FROM information_schema.tables 
WHERE table_schema='public' 
    AND table_type='BASE TABLE'; 
+2

यह सबसे अच्छा जवाब है। – Tommy

25

databse साथ postgres टर्मिनल खोलें आप चाहते हैं:

psql dbname (run this line in a terminal) 

तो, postgres पर्यावरण

\d 

इस नाम से सभी तालिकाओं का वर्णन करेंगे में इस आदेश को चलाते हैं। मूल रूप से आरोही नाम से तालिकाओं की एक सूची।

तो फिर तुम खेतों से एक मेज वर्णन करने के लिए यह कोशिश कर सकते हैं:

\d tablename. 

आशा इस मदद करता है।

+0

@wingedpanther कैसे करें? * केवल * सभी टेबलों को सूचीबद्ध करने के लिए '\ d' विकल्प हैं, बिना इंडेक्स, कोई सीईसी, ...? –

+3

क्या इसके लिए '' '\ dt''' नहीं है? – thoroc

4
select 
relname as table 
from 
pg_stat_user_tables 
where schemaname = 'public' 
  • यह अगर track_activities अक्षम किया गया है

select 
    tablename as table 
from 
    pg_tables 
where schemaname = 'public' 
  • अधिक के बारे में pg_tables
+1

'pg_stat_user_tables' पॉप्युलेट नहीं किया जा सकता है यदि' track_activities' अक्षम है। "आधिकारिक" एपीआई जैसे 'pg_tables' या' info_schema.table' का उपयोग करना ** ** ** बेहतर विकल्प है। –

+0

@a_horse_with_no_name अद्यतन साथी देखें :) –

25

पढ़ें आप ली चाहते हैं काम नहीं करेगा डेटाबेस

SELECT datname FROM pg_database WHERE datistemplate = false; 

के सेंट आप

SELECT table_schema,table_name FROM information_schema.tables 
ORDER BY table_schema,table_name; 
+0

कम से कम पोस्टग्रेस 9.5 में, यह सच नहीं है। मेरे पास एक क्लस्टर में 3 डेटाबेस हैं, और यह केवल मौजूदा डेटाबेस से टेबल लौटा रहा है। – sudo

+0

प्रलेखन केवल वर्तमान एक कहता है: https://www.postgresql.org/docs/9.5/static/infoschema-tables.html "table_catalog \t sql_identifier \t तालिका का डेटाबेस (हमेशा वर्तमान डेटाबेस)" – sudo

5

के बारे में कैसे सिर्फ psql में \dt दे रही है सभी डेटाबेस की वर्तमान स्नातकोत्तर स्थापना से तालिकाओं की सूची चाहते हैं? https://www.postgresql.org/docs/current/static/app-psql.html देखें।

संबंधित मुद्दे

 संबंधित मुद्दे