द्वारा वृद्धि ऑटोइनक्रिएशन आईडी फ़ील्ड में मेरे पास एक MySQL 5 सर्वर है और इसमें एक आईडी फ़ील्ड (प्राथमिक कुंजी) पर एक ऑटोइनक्रिकमेंट के साथ एक तालिका है। अब मैं बीच में एक रिकॉर्ड जोड़ना चाहता हूं और इसलिए मुझे सभी अन्य आईडी को एक से बढ़ा देना है। मैंने यही कोशिश की:एक
UPDATE myTable SET id=id+1 WHERE id >= 53
यह काम नहीं करता है क्योंकि उदाहरण के लिए आईडी = 52 के साथ एक रिकॉर्ड पहले से मौजूद है। मैं यह कैसे कर सकता हूँ? अगर वह आखिरी प्रविष्टि में शुरू होता है और अपडेट करता है तो इसे काम करना चाहिए। पर कैसे?
प्राथमिक एक * पहचान प्रदान करना है * नहीं करने के लिए * आदेश * उन्हें:
अगर, हालांकि, आप तय करते हैं क्या तुम सच में इस, उपयोग करना चाहते हैं। अपना वांछित आदेश निर्दिष्ट करने के लिए एक अलग कॉलम का उपयोग करें। आपके द्वारा डालने के बाद पंक्ति के लिए प्राथमिक कुंजी को बदलना यह आपको केवल समस्याएं देगा। –
क्या होगा अगर autoincreament फ़ील्ड ड्रॉप और फिर से करें? –
कॉलम को छोड़ना और पुनर्निर्मित करना (या मौजूदा पंक्तियों को पुनर्निर्मित करने का प्रयास करना) काम नहीं करेगा, खासकर यदि आप आईडी को कहीं और विदेशी कुंजी के रूप में इस्तेमाल कर चुके हैं। (यह मौजूदा पंक्तियों से कनेक्शन तोड़ देगा।) आपको वास्तव में @ मार्कबर्स को सुनना चाहिए - "आपके द्वारा डालने के बाद पंक्ति के लिए प्राथमिक कुंजी को बदलना इससे आपको केवल समस्याएं मिलेंगी।" यह भी देखें [यह] (http://stackoverflow.com/questions/2106237/is-there-any-harm-in-resetting-the-auto-increment) SO प्रश्न और इसका उत्तर है। –