2010-07-16 13 views
24

क्या कोई प्रश्न परिणाम के कॉलम प्रकारों को आसानी से प्राप्त करने का कोई तरीका है? मैंने psql प्रलेखन पढ़ा, लेकिन मुझे नहीं लगता कि यह इसका समर्थन करता है। आदर्श रूप में, मैं कुछ प्राप्त करने में सक्षम हूं:क्वेरी परिणाम कॉलम प्रकार दिखाएं (PostgreSQL)

columna : text | columnb : integer 
----------------+------------------- 
oh hai   |    42 

क्या कोई तरीका है कि मैं कुछ जानकारी कोड किए बिना प्राप्त कर सकता हूं?

+0

हा, मैंने कल इस प्रश्न को #postgresql में पूछा (तब कोई जवाब नहीं) –

+0

मुझे नहीं लगता कि 'psql' आपको सीधे दिखा सकता है। लेकिन ऐसा करने के लिए इसे संशोधित करना काफी आसान होना चाहिए। शायद आप इसे अनुकरण करने के लिए संग्रहीत प्रक्रिया लिख ​​सकते हैं। – Wolph

उत्तर

3

मुझे नहीं लगता कि आप नमूना में जो भी है, उसे प्रिंट कर सकते हैं, जब तक कि आप इसके लिए एक संग्रहीत प्रक्रिया नहीं लिखते।

एक तरह से यह करने के लिए (दो "चयन"):

  1. create table my_table as select ...
  2. \d my_table
  3. select * from my_table
+0

हाँ, मुझे बस उस प्रकार की आवश्यकता है, जरूरी नहीं कि प्रारूप। धन्यवाद। –

+4

यह 'pg_typeof() 'का उपयोग करने की तुलना में बदतर और असुविधाजनक लगता है। –

+3

@JayTaylor मैं सहमत हूं। जीवन एक सफर है। :-) –

37

यह किसी भी चयन करें क्वेरी परिणाम स्तंभ प्रकार प्राप्त करने के लिए संभव है।

उदाहरण

निम्न क्वेरी और परिणाम को देखते हुए, के सवाल का जवाब देना * "all_ids के स्तंभ प्रकार क्या है?" *

SELECT array_agg(distinct "id") "all_ids" FROM "auth_user"; 

       all_ids 
-------------------------------------------- 
{30,461577687337538580,471090357619135524} 
(1 row) 

हम एक तंत्र की जरूरत के प्रकार के अनावरण करने "all_ids"।

postgres mailing list archives पर मुझे pg_typeof नामक देशी पीजी फ़ंक्शन का संदर्भ मिला।

उदाहरण उपयोग:

SELECT pg_typeof(array_agg(distinct "id")) "all_ids" FROM "auth_user"; 

आउटपुट:

all_ids 
---------- 
bigint[] 
(1 row) 

चीयर्स!

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