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

क्रम में अनुक्रम पीढ़ी

नहीं, चूंकि कोई स्वाभाविक क्रम नहीं है डेटाबेस तालिका में पंक्तियों की संख्या, आपको केवल अपनी तालिका के मानों के साथ काम करना है।

खैर, पोस्टग्रेज़ विशिष्ट सिस्टम कॉलम हैं cmin और ctid आप कर सकते थे कुछ हद तक दुर्व्यवहार।

टपल आईडी (ctid ) पंक्ति के लिए ब्लॉक में फ़ाइल ब्लॉक संख्या और स्थिति शामिल है। तो यह डिस्क पर वर्तमान भौतिक क्रम का प्रतिनिधित्व करता है। बाद के परिवर्धनों में एक बड़ा ctid होगा , सामान्य रूप से . आपका SELECT स्टेटमेंट कुछ इस तरह दिख सकता है

SELECT *, ctid   -- save ctid from last row in last_ctid
FROM   tbl
WHERE  ctid > last_ctid
ORDER  BY ctid

ctid डेटा प्रकार है tid . उदाहरण:'(0,9)'::tid

हालांकि यह स्थिर नहीं है VACUUM . के बाद से दीर्घकालिक पहचानकर्ता के रूप में या कोई समवर्ती UPDATE या कुछ अन्य ऑपरेशन किसी भी समय टपल के भौतिक स्थान को बदल सकते हैं। हालांकि, लेन-देन की अवधि के लिए यह स्थिर है। और अगर आप बस डाल रहे हैं और कुछ नहीं अन्यथा, इसे आपके उद्देश्य के लिए स्थानीय रूप से काम करना चाहिए।

मैं डिफ़ॉल्ट के साथ एक टाइमस्टैम्प कॉलम जोड़ूंगा now() serial . के अलावा कॉलम ...

मैं एक कॉलम को डिफ़ॉल्ट भी दूंगा अपना id पॉप्युलेट करें कॉलम (एक serial या IDENTITY कॉलम)। यह स्पष्ट रूप से प्राप्त करने और फिर इसे सम्मिलित करने की तुलना में बाद के चरण में अनुक्रम से संख्या पुनर्प्राप्त करता है, जिससे दौड़ की स्थिति के लिए विंडो को कम से कम (लेकिन समाप्त नहीं) किया जाता है - संभावना है कि कम id बाद में डाला जाएगा। विस्तृत निर्देश:

  • ऑटो इंक्रीमेंट टेबल कॉलम


  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. स्प्रिंग जेपीए रिपोजिटरी के साथ प्रश्न चिह्न (?) चरित्र से कैसे बचें?

  3. PostgreSQL में विभिन्न सहायक योजना नोड्स का अवलोकन

  4. PostgreSQL 13 में नया क्या है?

  5. क्रमबद्ध पथों के लाभों पर