तब आप ऑटो-इंक्रीमेंटिंग कॉलम का उपयोग नहीं करना चाहते हैं। यदि आप अंतराल को भरना चाहते हैं, तो इसे एक इंट कॉलम पर सेट करें और संग्रहीत प्रो या सम्मिलित में तर्क को संभालें।
संपादित करें:
चूंकि यह एक इंट कॉलम है, आप उन्हें संख्यात्मक रूप से ऑर्डर कर सकते हैं। बस एक SELECT Ids FROM Table Order By Ids
सभी आईडी प्राप्त करने और लौटाए गए डेटासेट में अंतराल की जांच करने के लिए।
ऐसा करने का शायद एक आसान तरीका है, लेकिन आप एक कर्सर के साथ परिणामों को लूप कर सकते हैं और INT
से तुलना कर सकते हैं वेरिएबल जो पूरे लूप में बढ़ता है। जब आपको कोई गैप मिले (कोई मेल नहीं) - लूप को तोड़ें और उस INT
. का उपयोग करें आपके INSERT
. के रूप में मान पहचान।
मैं आपके लिए आपका कोड नहीं लिखूंगा, लेकिन आपको सही दिशा में ले जाने के लिए ये कुछ कदम हैं। यह प्रोग्रामिंग का एक बहुत ही बुनियादी बिट होना चाहिए जिसे आपको संभालने में सक्षम होना चाहिए।
आशा है कि यह मदद करता है।
#2 संपादित करें:
जैसा कि अन्य ने नोट किया है, आपका सबसे अच्छा कदम केवल अंतराल को छोड़ना है। जब तक कि मेज पर कुछ टोपी लंबाई तक न हो और आईडी 1-30 (अजीब) होनी चाहिए, इसे अकेला छोड़ दें। रिक्तियों को भरने से कोई लाभ नहीं है।
#3 संपादित करें:
एक और बात पर विचार करना चाहिए:यदि आपको किसी कारण से वास्तव में 1-30 रखना है, तो अपनी पंक्तियों को न हटाएं। प्रत्येक पंक्ति को सक्रिय या नहीं के रूप में फ़्लैग करने के लिए एक कॉलम जोड़ें और फिर ज़रूरत पड़ने पर केवल उन पंक्तियों को अपडेट करें जो निष्क्रिय हैं और फिर उन्हें सक्रिय के रूप में फ़्लैग करें। यह बहुत हैकी है, लेकिन आपकी आवश्यकता थोड़ी हैकी है, इसलिए...