नहीं, चूंकि कोई स्वाभाविक क्रम नहीं है डेटाबेस तालिका में पंक्तियों की संख्या, आपको केवल अपनी तालिका के मानों के साथ काम करना है।
खैर, पोस्टग्रेज़ विशिष्ट सिस्टम कॉलम हैं 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
बाद में डाला जाएगा। विस्तृत निर्देश:
- ऑटो इंक्रीमेंट टेबल कॉलम