Postgres के पास सिस्टम सामग्री के बारे में जानकारी संग्रहीत करने का एक और तरीका है। इसे सिस्टम कैटलॉग कहा जाता है। ।
फायरबर्ड में आपकी क्वेरी मूल रूप से प्रत्येक स्कीमा में तालिका के प्रत्येक कॉलम के लिए एक अतिरिक्त इंटीजर कॉलम के साथ एक पंक्ति लौटाती है जो फ़ील्ड डेटाटाइप पर मैप करती है।
pg_catalog
. में सिस्टम टेबल का उपयोग करके पोस्टग्रेज़ में इस क्वेरी का उपयोग करके कुछ समान स्कीमा प्राप्त किया जा सकता है:
SELECT
TRIM(c.relname) AS table_name, TRIM(a.attname) AS column_name, a.atttypid AS field_type
FROM pg_class c
LEFT JOIN pg_attribute a ON
c.oid = a.attrelid
AND a.attnum > 0 -- only ordinary columns, without system ones
WHERE c.relkind = 'r' -- only tables
ORDER BY 1,2
उपरोक्त क्वेरी सिस्टम कैटलॉग भी लौटाती है। अगर आप बहिष्कृत करना चाहते हैं उन्हें आपको pg_namespace
. में एक और जॉइन जोड़ने की जरूरत है और जहां pg_namespace.nspname <> 'pg_catalog'
के साथ क्लॉज , क्योंकि यह वह स्कीमा है जहां सिस्टम कैटलॉग संग्रहीत किए जाते हैं।
यदि आप उनके प्रतिनिधि संख्याओं के बजाय डेटाटाइप नाम भी देखना चाहते हैं, तो pg_type
में एक जॉइन जोड़ें ।
सूचना स्कीमा विचारों का संग्रह शामिल है। ज्यादातर मामलों में आपको संपूर्ण SQL क्वेरी की आवश्यकता नहीं होती है जो दृश्य के पीछे खड़ी होती है, इसलिए सिस्टम टेबल का उपयोग करने से आपको बेहतर प्रदर्शन मिलेगा। हालाँकि, आप व्यू परिभाषा का निरीक्षण कर सकते हैं, बस आपको एक आउटपुट बनाने के लिए उपयोग की जाने वाली तालिकाओं और शर्तों पर आरंभ करने के लिए।