PostgreSQL "डिस्क्रिबल टेबल"




(11)

आप PostgreSQL (psql कमांड का उपयोग करके) में ओरेकल के DESCRIBE TABLE के समतुल्य प्रदर्शन कैसे करते हैं?


/ डीटी कमांड है जो आपको डेटाबेस में मौजूद सभी टेबल सूचीबद्ध करता है। का उपयोग करते हुए
/ डी कमांड और / डी + हम एक टेबल का विवरण प्राप्त कर सकते हैं। Sysntax की तरह होगा
* / डी table_name (या) \ d + table_name


PostgreSQL तरीके के अलावा (\ d 'कुछ' या \ dt 'table' या \ ds 'अनुक्रम' और इसी तरह)

एसक्यूएल मानक तरीका, जैसा कि here दिखाया गया here :

select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS where table_name = '<name of table>';

यह कई डीबी इंजनों द्वारा समर्थित है।


आप इसे psql स्लैश कमांड के साथ कर सकते हैं:

 \d myTable describe table

यह अन्य वस्तुओं के लिए भी काम करता है:

 \d myView describe view
 \d myIndex describe index
 \d mySequence describe sequence

स्रोत: faqs.org


आप उन \d *search pattern * को ढूंढने के लिए तारों के साथ एक \d *search pattern * कर सकते हैं जो आपकी रुचि वाले खोज पैटर्न से मेल खाते हैं।


इसे आज़माएं ( psql कमांड-लाइन टूल में):

\d+ tablename

अधिक जानकारी के लिए मैनुअल देखें।


कमांड लाइन \d+ <table_name> आप पहले ही पा चुके हैं, आप info_schema.columns का उपयोग करके कॉलम डेटा देखने के लिए information-schema का भी उपयोग कर सकते हैं

SELECT *
FROM info_schema.columns
WHERE table_schema = 'your_schema'
AND table_name   = 'your_table'

क्वेरी के इस बदलाव (जैसा कि अन्य उत्तरों में बताया गया है) मेरे लिए काम किया।

SELECT
 COLUMN_NAME
FROM
 information_schema.COLUMNS
WHERE
 TABLE_NAME = 'city';

यहां विवरण में वर्णित है: http://www.postgresqltutorial.com/postgresql-describe-table/


निम्नलिखित SQL कथन का प्रयोग करें

SELECT DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'tbl_name' 
AND COLUMN_NAME = 'col_name'

यदि आप tbl_name और col_name को प्रतिस्थापित करते हैं, तो यह उस विशेष प्रकार के डेटा कॉलम को प्रदर्शित करता है जिसे आप ढूंढ रहे हैं।


यदि आप इसे psql के बजाय क्वेरी से प्राप्त करना चाहते हैं, तो आप कैटलॉग स्कीमा से पूछ सकते हैं। यहां एक जटिल क्वेरी है जो यह करती है:

SELECT  
    f.attnum AS number,  
    f.attname AS name,  
    f.attnum,  
    f.attnotnull AS notnull,  
    pg_catalog.format_type(f.atttypid,f.atttypmod) AS type,  
    CASE  
        WHEN p.contype = 'p' THEN 't'  
        ELSE 'f'  
    END AS primarykey,  
    CASE  
        WHEN p.contype = 'u' THEN 't'  
        ELSE 'f'
    END AS uniquekey,
    CASE
        WHEN p.contype = 'f' THEN g.relname
    END AS foreignkey,
    CASE
        WHEN p.contype = 'f' THEN p.confkey
    END AS foreignkey_fieldnum,
    CASE
        WHEN p.contype = 'f' THEN g.relname
    END AS foreignkey,
    CASE
        WHEN p.contype = 'f' THEN p.conkey
    END AS foreignkey_connnum,
    CASE
        WHEN f.atthasdef = 't' THEN d.adsrc
    END AS default
FROM pg_attribute f  
    JOIN pg_class c ON c.oid = f.attrelid  
    JOIN pg_type t ON t.oid = f.atttypid  
    LEFT JOIN pg_attrdef d ON d.adrelid = c.oid AND d.adnum = f.attnum  
    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace  
    LEFT JOIN pg_constraint p ON p.conrelid = c.oid AND f.attnum = ANY (p.conkey)  
    LEFT JOIN pg_class AS g ON p.confrelid = g.oid  
WHERE c.relkind = 'r'::char  
    AND n.nspname = '%s'  -- Replace with Schema name  
    AND c.relname = '%s'  -- Replace with table name  
    AND f.attnum > 0 ORDER BY number
;

यह बहुत जटिल है लेकिन यह आपको PostgreSQL सिस्टम कैटलॉग की शक्ति और लचीलापन दिखाता है और आपको pg_catalog mastery ;-) पर अपने रास्ते पर ले जाना चाहिए। क्वेरी में% s को बदलना सुनिश्चित करें। पहला स्कीमा है और दूसरा टेबल नाम है।


DESCRIBE TABLE बराबर psql \d table

अधिक जानकारी के लिए PostgreSQL मैनुअल के psql भाग देखें।


Use this command 

\d table name

like 

\d queuerecords

             Table "public.queuerecords"
  Column   |            Type             | Modifiers
-----------+-----------------------------+-----------
 id        | uuid                        | not null
 endtime   | timestamp without time zone |
 payload   | text                        |
 queueid   | text                        |
 starttime | timestamp without time zone |
 status    | text                        |




postgresql