मेरे पास 38,000 रिकॉर्ड वाली एक तालिका है, लेकिन ID
जैसे किसी भी ऑटो वृद्धि कॉलम के बिना।
अब मुझे ID
कॉलम जोड़ना है, और मुझे आश्चर्य है कि परेशानी हो सकती है?तालिका के बाद एक नई आईडी (ऑटो वृद्धि) जोड़ने की समस्याएं
उत्तर
किसी भी क्षेत्र में परिभाषा परिवर्तन के साथ समस्या यह है कि परिवर्तन "विनाशकारी" है। डेटा माइग्रेशन के रूप में इस तरह के बदलावों का इलाज करना सबसे अच्छा है। मैंने MySQL के साथ ऐसा नहीं किया है, लेकिन SQL सर्वर में ऑटो नंबरिंग जोड़नी है। मूल विचार वही है।
दस्तावेज़ीकरण की जांच करें, क्योंकि MySQL में फ़ील्ड को रीसेट किए बिना ऑटो वृद्धि जोड़ने के लिए एक तंत्र हो सकता है। यदि ऐसा है, तो एसक्यूएल के माध्यम से इसे करने से समस्या हल हो जाएगी। आम तौर पर, मैं एक उपकरण के साथ, इन प्रकार के परिवर्तनों को दृष्टि से करने के खिलाफ अनुशंसा करता हूं, क्योंकि अधिकांश उपकरण उनके मेथडोलॉजी में बहुत विनाशकारी होते हैं।
बस phpMyAdmin के साथ नया फ़ील्ड जोड़ा गया, और सब ठीक है। Oredering अच्छी तरह से किया नहीं है, लेकिन यह महत्वपूर्ण नहीं है। धन्यवाद – Bobo
"क्या परेशानी हो सकती है?"
केवल रिकॉर्ड डालने में परेशानी हो सकती है। हालांकि ...
आम तौर पर, एक नया क्षेत्र जोड़ना आम तौर पर करने के लिए बहुत सुरक्षित है, भले ही यह एक ऑटो-वृद्धिशील कॉलम हो या नहीं। यह उन कॉलम को बदल रहा है या हटा रहा है जो आपको सभी कारणों के बारे में सुनिश्चित नहीं करते हैं, यदि आप सभी निर्भरताओं के बारे में सुनिश्चित नहीं हैं।
सुरक्षित होने के लिए, हालांकि, मैं इसे पहले एक प्रतिलिपि (परीक्षण) संस्करण पर आज़माउंगा और पहले सुरक्षित संस्करण के लिए अपने संस्करण को परीक्षण संस्करण के विरुद्ध चलाऊंगा। किसी भी तरह से कोई फर्क नहीं पड़ता कि परीक्षण पर्यावरण का उपयोग करना अच्छा अभ्यास है।
क्या आप इस बारे में अधिक विशिष्ट हो सकते हैं कि आप किस प्रकार की परेशानी के बारे में चिंतित हैं?
यदि आप अपनी तालिका दूसरों के साथ संबंध नहीं रखते हैं तो समस्या के बिना आप इसे जोड़ सकते हैं।
आपको पुरानी प्राथमिक कुंजी को हटा देना होगा और तदनुसार तालिका अपलोड करना होगा (शायद पुरानी प्राथमिक कुंजी पर एक अद्वितीय अनुक्रमणिका जोड़ें)।
ऐसे ही आगे बढ़ें:
अपने डेटाबेस की एक डंप बनाने
निकालें कि
ALTER TABLE XXX DROP PRIMARY KEY
- तरह प्राथमिक कुंजी है कि जैसे नए स्तंभ जोड़ें
ALTER TABLE XXX add column Id INT NOT NULL AUTO_INCREMENT FIRST, ADD primary KEY Id(Id)
तालिका देखी जाएगी और ऑटोइन अपडेट किया जाएगा।
यह समाधान है कि मैं MySQL Workbench के साथ करने की कोशिश की है:
ALTER TABLE `tableName` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;
अगर यह सही तरीका है मैं नहीं जानता, लेकिन मैं अभी तक अपने जावा ईई आवेदन में किसी भी समस्या का नोटिस नहीं किया था।
मुझे लगता है कि आईडी कुंजी का हिस्सा था अन्यथा यह त्रुटि देता है। – siddhusingh
यह आपके MySQL तालिका में एक ऑटो वेतन वृद्धि आईडी जोड़ देगा:
ALTER TABLE `your_table_name` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
अपनी मेज पर डेटा की मात्रा पर निर्भर करता है यह पूरा करने के लिए कुछ मिनट लग सकता है।
से पहले आपको स्वत: वृद्धि क्षेत्र के रूप में यह कर सकते हैं पहले प्राथमिक कुंजी के रूप में जोड़ने की आवश्यकता हो सकती है
आप इस उदाहरण
ALTER TABLE `category`
ADD PRIMARY KEY (`cat_id`);
ALTER TABLE `category`
MODIFY `cat_id` int(11) NOT NULL AUTO_INCREMENT;
मैं बहुत बड़े डेटा के साथ काम को देखो और एक आईडी था कर सकते हैं न्यूल से भरे कॉलम। मैंने संख्याओं को भरने के लिए निम्न SQL को चलाने का चयन किया ... फिर मैंने आईडी कॉलम को मेरी प्राथमिक कुंजी के रूप में सेट किया।
set @row = 0;
UPDATE philadelphia.msg_geo_sal SET id = @row := @row + 1;
- 1. सी # कक्षा ऑटो वृद्धि आईडी
- 2. एच 2 डेटाबेस में ऑटो वृद्धि आईडी
- 3. GUID बनाम int आईडी ऑटो-वृद्धि
- 4. सी #, इकाई की रूपरेखा, ऑटो वेतन वृद्धि
- 5. MySQL: ऑटो वृद्धि
- 6. एंड्रॉयड SQLite ऑटो वेतन वृद्धि
- 7. ऑटो वृद्धि कंपोजिट कुंजी InnoDB
- 8. ऑब्जेक्ट्स के लिए LINQ ऑटो वृद्धि संख्या
- 9. ओरेकल - ऑटो वृद्धिशील आईडी
- 10. कैसंड्रा कॉलम कुंजी ऑटो वृद्धि
- 11. ऑटो-आईडी
- 12. हेरोकू MySQL ऑटो वृद्धि
- 13. धाराप्रवाह निबर्ननेट ऑटो वृद्धि नॉन कुंजी (आईडी) संपत्ति
- 14. अगले ऑटो वृद्धि
- 15. mysql आईडी ऑटो increment 0
- 16. नई आईडी और मौजूदा आईडी
- 17. एक नई उपयोगकर्ता तालिका
- 18. पुश-अधिसूचना बैज ऑटो वृद्धि
- 19. TSQL - एक अद्यतन बयान में ऑटो वृद्धि
- 20. जेपीए: ओवरराइड ऑटो आईडी
- 21. एक नई डाली गई पंक्ति
- 22. ऐप के बाद डेटाबेस में नई तालिका जोड़कर
- 23. एंड्रॉइड SQLite डेटाबेस तालिका हटाने के बाद, आईडी 1 से शुरू होगी?
- 24. MySQL में ऑटो वृद्धि मूल्य की वर्तमान गणना को बदलना?
- 25. एक mysql तालिका auto_increment में एक आईडी बनाते हैं (तथ्य के बाद)
- 26. क्या mySQL में पूर्ण डेटाबेस (प्रत्येक तालिका नहीं!) पर ऑटो वृद्धि हुई है?
- 27. * dereferencing के बाद * पी ++ वृद्धि?
- 28. क्या एसक्लाइट में ऑटो वृद्धि हुई है?
- 29. mysql लोड डेटा INFLE ऑटो-वृद्धि प्राथमिक कुंजी
- 30. मैं एक ही तालिका में किसी अन्य फ़ील्ड में ऑटो वृद्धि प्राथमिक कुंजी कैसे जोड़ूं?
क्या पहले से ही एक पूर्णांक आईडी कॉलम है जो आपकी पंक्तियों को विशिष्ट रूप से पहचानता है? – BoltClock