मुझे PostgreSQL में कॉलम प्रकार जानने की आवश्यकता है (यानी varchar(20)
)। मुझे पता है कि मैं शायद इसे \d
psql में कुछ उपयोग कर सकता हूं, लेकिन मुझे इसे एक चुनिंदा क्वेरी के साथ करने की आवश्यकता है।
क्या यह PostgreSQL में संभव है?PostgreSQL में किसी तालिका के स्कीमा विवरण पूछें?
उत्तर
आप पूरी तरह से निम्न क्वेरी के साथ postgres का उपयोग कर एक मेज वर्णन कर सकते हैं।
यह भी -E
विकल्प
$ psql -E
और फिर एक सरल \d mytable
इच्छा उत्पादन postgres द्वारा प्रयोग किया जाता तालिका वर्णन करने के लिए प्रश्नों का उपयोग कर psql ग्राहक शुरू करने के लिए संभव है। यह प्रत्येक psql आदेशों का वर्णन करने के लिए काम करता है।
हां, information_schema पर देखें। इस Tith
SELECT
a.attname as Column,
pg_catalog.format_type(a.atttypid, a.atttypmod) as Datatype
FROM
pg_catalog.pg_attribute a
WHERE
a.attnum > 0
AND NOT a.attisdropped
AND a.attrelid = (
SELECT c.oid
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~ '^(TABLENAME)$'
AND pg_catalog.pg_table_is_visible(c.oid)
)
आप स्तंभ नाम और डेटा प्रकार पुनः प्राप्त करेगा:
एक एक कॉलम के प्रकार प्राप्त करने के लिए PostgreSQL में बहुत आसान तरीका है।
SELECT pg_typeof(col)::text FROM tbl LIMIT 1
तालिका में कम से कम एक पंक्ति होनी चाहिए। और आप केवल प्रकार के संशोधक के बिना बेस प्रकार प्राप्त करते हैं (यदि कोई हो)। अगर आपको इसकी आवश्यकता भी है तो नीचे दिए गए विकल्प का प्रयोग करें।
आप स्थिरांक के लिए भी फ़ंक्शन का उपयोग कर सकते हैं। manual on pg_typeof()
।
एक खाली (या किसी भी) तालिका आप सिस्टम सूची pg_attribute
क्वेरी का उपयोग कर सकते पूर्ण क्रम में स्तंभों की सूची और उनके संबंधित प्रकार प्राप्त करने के लिए के लिए: format_type()
पर
SELECT attnum, attname AS column, format_type(atttypid, atttypmod) AS type
FROM pg_attribute
WHERE attrelid = 'myschema.mytbl'::regclass -- optionally schema-qualified
AND NOT attisdropped
AND attnum > 0
ORDER BY attnum;
मैनुअल और object identifier typesregclass
की तरह पर ।
थोड़ी देर के लिए "format_type (atttypid, atttypmod)" की तलाश में है, क्योंकि ऐसा लगता है कि यह info_schema.columns जैसा ही है। udt_name (या इसी तरह और यह मेरे मामले के लिए बिल्कुल ठीक है)। धन्यवाद :)। – Dolfa
- 1. किसी तालिका के लिए स्कीमा प्राप्त करना
- 2. postgreSQL स्कीमा
- 3. विभाजन मास्टर विवरण तालिका
- 4. किसी अन्य स्कीमा में तालिका के लिए विदेशी कुंजी संदर्भ
- 5. PostgreSQL तालिका
- 6. LINQ: तालिका विवरण प्राप्त करें
- 7. symfony2 + doctrine2 @ postgresql एक स्कीमा
- 8. एसक्यूएल, तालिका में एकाधिक विदेशी कुंजी के साथ कैसे पूछें?
- 9. लेन-देन के अंदर PostgreSQL स्कीमा परिवर्तन पर सीमाएं?
- 10. डीबी 2 तालिका में कॉलम का विवरण
- 11. तालिका विवरण प्राप्त करने के लिए
- 12. Postgresql पेड़ तालिका
- 13. डेटाबेस तालिका स्कीमा
- 14. किसी मौजूदा तालिका से सक्रियrecord स्कीमा उत्पन्न करें
- 15. किसी अन्य टेबल स्कीमा से खाली अस्थायी तालिका कैसे बनाएं?
- 16. PostgreSQL में तालिका पर DELETE अक्षम करें?
- 17. किसी तालिका में किसी अन्य तालिका में मानों के आधार पर रिकॉर्ड्स को कैसे हटाएं?
- 18. तालिका डेटा देखने के लिए PostgreSql कमांड
- 19. PostgreSQL अनुक्रम के हाइबरनेट उपयोग अनुक्रम तालिका
- 20. स्कीमा एनोटेशन के साथ सिद्धांत ओआरएम तालिका
- 21. PostgreSQL - तालिका नाम के रूप में एक गतिशील मान
- 22. किसी भी SQL तालिका
- 23. किसी XML स्कीमा
- 24. JAXP: किसी XML स्कीमा
- 25. किसी तालिका (jQuery)
- 26. PostgreSQL
- 27. postgresql: किसी निर्दिष्ट स्थान में डेटाबेस बनाना
- 28. PostgreSQL
- 29. PostgreSQL डेटाबेस या स्कीमा की एक प्रति कैसे बनाएं?
- 30. अगर किसी तालिका में CASCADE
उत्कृष्ट उत्तर! मैं एक और समस्या में भाग गया, हालांकि: http://stackoverflow.com/questions/4336465/using-query-to-set-the-column-type-in-postgresql – David
मुझे नहीं लगता कि आपको उस रेगेक्स मैच की आवश्यकता है, ' c.relname ~ '^ (TABLENAME) $' '' c.relname = 'TABLENAME' के बराबर है। हालांकि अच्छा जवाब है। –
@mu आप सही हैं, लेकिन मुझे लगता है कि उन्होंने इसे रेगेक्स समर्थन के साथ कुछ से कॉपी किया है :) –