PostgreSQL स्कीमा में सूची तालिकाएं




postgresql-9.1 psql (3)

आप info_schema से टेबल का चयन कर सकते information_schema

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

जब मैं psql में \dt करता हूं तो मुझे केवल वर्तमान स्कीमा (डिफ़ॉल्ट रूप से public ) में तालिकाओं की एक सूची मिलती है।

मैं सभी स्कीमा या किसी विशेष स्कीमा में सभी तालिकाओं की सूची कैसे प्राप्त कर सकता हूं?


भविष्य में आने वाले लोगों के लिए:

यदि आप कई स्कीमा के लिए संबंधों की एक सूची देखना चाहते हैं:

$psql mydatabase
mydatabase=# SET search_path TO public, usa;   #schema examples
SET
mydatabase=# \dt
              List of relations
 Schema |      Name       | Type  |  Owner
--------+-----------------+-------+----------
 public | counties        | table | postgres
 public | spatial_ref_sys | table | postgres
 public | states          | table | postgres
 public | us_cities       | table | postgres
 usa    | census2010      | table | postgres

सभी स्कीमा में:

=> \dt *.*

एक विशेष स्कीमा में:

=> \dt public.*

कुछ प्रतिबंधों के साथ नियमित अभिव्यक्तियों का उपयोग करना संभव है

\dt (public|s).(s|t)
       List of relations
 Schema | Name | Type  | Owner 
--------+------+-------+-------
 public | s    | table | cpn
 public | t    | table | cpn
 s      | t    | table | cpn

उन्नत उपयोगकर्ता किसी भी अंक से मेल खाने के लिए चरित्र वर्ग जैसे नियमित अभिव्यक्ति नोटेशन का उपयोग कर सकते हैं, उदाहरण के लिए [0-9]। सभी नियमित अभिव्यक्ति विशेष वर्ण खंड 9.7.3 में निर्दिष्ट के अनुसार कार्य करते हैं। जिसे उपरोक्त वर्णित एक विभाजक के रूप में लिया जाता है, * जिसे नियमित अभिव्यक्ति नोटेशन में अनुवादित किया जाता है। ,? जिसका अनुवाद किया जाता है, और $ जो सचमुच मेल खाता है। आप लिखने के ज़रिए इन पैटर्न पात्रों को अनुकरण कर सकते हैं? आर के लिए, (आर + |) आर , या (आर |) आर के लिए? $ नियमित रूप से अभिव्यक्ति चरित्र के रूप में आवश्यक नहीं है क्योंकि पैटर्न को नियमित रूप से अभिव्यक्तियों की सामान्य व्याख्या के विपरीत, पूरे नाम से मेल खाना चाहिए (दूसरे शब्दों में, $ स्वचालित रूप से आपके पैटर्न में संलग्न होता है)। यदि आप पैटर्न को एंकर करने की इच्छा नहीं रखते हैं तो शुरुआत * और अंत में लिखें *। ध्यान दें कि डबल कोट्स के भीतर, सभी नियमित अभिव्यक्ति विशेष वर्ण उनके विशेष अर्थ खो देते हैं और सचमुच मेल खाते हैं। साथ ही, नियमित अभिव्यक्ति विशेष वर्ण ऑपरेटर नाम पैटर्न (यानी, \ डू का तर्क) में सचमुच मेल खाते हैं।







psql