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

रो कंस्ट्रक्टर का उपयोग किसके लिए किया जाता है?

आप अमूर्तता के स्तर को भ्रमित कर रहे हैं। जैसा कि अन्य उत्तर पहले ही बता चुके हैं, CREATE TYPE सिस्टम में केवल एक (समग्र/पंक्ति) प्रकार पंजीकृत करता है। जबकि एक ROW कंस्ट्रक्टर वास्तव में एक पंक्ति देता है।

ROW . के साथ बनाई गई एक पंक्ति प्रकार कंस्ट्रक्टर कॉलम नामों को संरक्षित नहीं करता है, जो तब स्पष्ट हो जाता है जब आप पंक्ति को JSON में बदलने का प्रयास करते हैं।

इस पर रहते हुए, ROW बस एक शोर शब्द . है सर्वाधिक समय। दस्तावेज:

डेमो:

SELECT t                              AS r1, row_to_json(t)                           AS j1
     , ROW(1, 'x', NUMERIC '42.1')    AS r2, row_to_json(ROW(1, 'x', NUMERIC '42.1')) AS j2
     ,    (1, 'x', NUMERIC '42.1')    AS r3, row_to_json(   (1, 'x', NUMERIC '42.1')) AS j3
     ,    (1, 'x', '42.1')::myrowtype AS r4, row_to_json((1, 'x', '42.1')::myrowtype) AS j4
FROM (SELECT 1, 'x', NUMERIC '42.1') t;

db<>fiddle यहां
sqlfiddle

r1 और j1 मूल कॉलम नामों को सुरक्षित रखें।
r2 और j2 नहीं।
r3 और j3 समान हैं; यह प्रदर्शित करने के लिए कि कैसे ROW बस शोर है।
r4 और j4 पंजीकृत प्रकार के कॉलम नाम रखें।

आप पंक्ति (रिकॉर्ड) को एक पंजीकृत पंक्ति प्रकार में डाल सकते हैं यदि संख्या और डेटा प्रकार तत्वों का पंक्ति प्रकार से मेल खाता है - नाम इनपुट फ़ील्ड की उपेक्षा की जाती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapper और Postgresql का उपयोग करना - citext डेटा प्रकार

  2. PostgreSQL में पेजिंग के लिए कर्सर का उपयोग करना

  3. एकाधिक थ्रेड्स का उपयोग करके फ़ाइल लिखना

  4. प्राग PostgreSQL डेवलपर दिवस 2016

  5. PSQLException:परिणामसेट ठीक से तैनात नहीं है, शायद आपको अगला कॉल करने की आवश्यकता है