PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL सी लाइब्रेरी (libpq) का उपयोग करके HSTORE कॉलम तक कैसे पहुंचे?

libpqtypes ऐसा लगता है कि hstore . के लिए कुछ समर्थन है ।

एक अन्य विकल्प hstore . के साथ सीधे इंटरैक्ट करने से बचना है आपके कोड में। क्लाइंट पक्ष पर इसके टेक्स्ट प्रस्तुतिकरण से निपटने के बिना आप अभी भी डेटाबेस में इसका लाभ उठा सकते हैं। मान लें कि आप एक hstore फ़ील्ड लाना चाहते हैं; आप बस उपयोग करें:

SELECT t.id, k, v FROM thetable t, LATERAL each(t.hstorefield);

या पुराने PostgreSQL संस्करणों पर आप विचित्र और गैर-मानक सेट-रिटर्निंग-फ़ंक्शन-इन-सेलेक्ट फॉर्म का उपयोग कर सकते हैं:

SELECT t.id, each(t.hstorefield) FROM thetable t;

(लेकिन देखें कि क्या t . से एक से अधिक रिकॉर्ड का चयन किया जा रहा है इस तरह, आपको अजीब परिणाम मिलेंगे जबकि LATERAL ठीक रहेगा)।

एक अन्य विकल्प hstore_to_array . का उपयोग करना है या hstore_to_matrix क्वेरी करते समय, यदि आप PostgreSQL सरणी प्रतिनिधित्व के साथ सहज महसूस करते हैं।

hstore मान बनाने के लिए आप hstore कंस्ट्रक्टर्स का उपयोग कर सकते हैं जो सरणियाँ लेते हैं। बदले में उन सरणियों को array_agg . के साथ बनाया जा सकता है एक VALUES . से अधिक खंड यदि आप अपने कोड में PostgreSQL के सरणी प्रतिनिधित्व से निपटना नहीं चाहते हैं।

यह सारी गड़बड़ी भविष्य में दूर हो जानी चाहिए, क्योंकि PostgreSQL 9.4 में hstore और json प्रकारों के बीच बेहतर इंटरऑपरेशन होने की संभावना है, जिससे आप hstore के साथ बातचीत करते समय सिर्फ json प्रतिनिधित्व का उपयोग कर सकते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल पर रूबी के लिए उबंटू पर पोस्टग्रेएसक्यूएल स्थापित करना

  2. कैसे हल करें org.postgresql.jdbc.PgConnection.createClob () अभी तक लागू नहीं किया गया है

  3. पदानुक्रमित डेटा में XPath क्वेरी, पूर्वजों-वंशज संबंधों को संरक्षित करना

  4. PostgreSQL में फ़ंक्शन से गतिशील तालिका बनाएं

  5. PostgreSQL जांचें कि क्या सरणी में बाएं हाथ के सरणी से कोई तत्व है