2009-11-27 9 views
32

मेरी तालिका में tbphotos में मेरे पास 100 रिकॉर्ड थे, फिर मैंने सभी को हटा दिया, अब मैं डेटा प्रविष्टि को पुनरारंभ करना चाहता हूं, मुझे लगता है कि मेरी प्राथमिक कुंजी 1 से शुरू नहीं होती है, लेकिन यह 101 से शुरू होती है, क्या कोई तरीका है? "MySQL प्रशासक"mysql में प्राथमिक कुंजी रीसेट करें?

धन्यवाद

उत्तर

64

alter table foo AUTO_INCREMENT = 1

+1

सभी उत्तरों के लिए धन्यवाद। – Kaveh

23

में मैं काम आप इस तरह autoincrement रीसेट कर सकते हैं:

ALTER TABLE tablename AUTO_INCREMENT = 1 

लेकिन आप autoincrement मूल्यों पर भरोसा कर रहे हैं, आपका कार्यक्रम बहुत नाजुक है। यदि आपको अपने प्रोग्राम के लिए काम करने के लिए अपने रिकॉर्ड में लगातार संख्याएं असाइन करने की आवश्यकता है तो आपको इसके लिए एक अलग कॉलम बनाना चाहिए, और इस उद्देश्य के लिए डेटाबेस ऑटो-वृद्धि आईडी का उपयोग नहीं करना चाहिए।

+7

क्या आप समझा सकते हैं कि ऑटो वृद्धि मूल्यों का उपयोग करने से आपका प्रोग्राम नाजुक हो जाता है। – Ben

2

यदि आप रिकॉर्ड मैन्युअल रूप से हटाने के बजाय TRUNC का उपयोग करते हैं, तो आपकी प्राथमिक कुंजी रीसेट हो जाएगी।

+0

TRUNCVATE INNODB तालिकाओं पर auto_id को रीसेट नहीं करता – Slashterix

+1

@ स्लेशटेरिक्स - दस्तावेज़ अन्यथा निर्दिष्ट करते हैं: http: //dev.mysql.com/doc/refman/5.7/en/truncate-table.html ... संपादित करें: मुझे अभी एहसास हुआ यह उत्तर कितना पुराना है और टिप्पणी क्या है। –

+0

@ParrisVarney धन्यवाद, आप सही हैं। मैं यहां वर्णित व्यवहार को भ्रमित कर रहा था http://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html#innodb-auto-increment-initialization – Slashterix

-1
DBCC CHECKIDENT (yourTable, RESEED, 0); 

यह मेरे लिए काम किया :)

+0

यह SQL सर्वर है, जबकि सवाल मेरे MySQL से पूछा गया था। – Donnie

0

नीचे कोड सबसे अच्छा आप पहले से ही डेटाबेस में कुछ डेटा है, लेकिन डेटा हटाए बिना 1 से आईडी रीसेट करने के लिए चाहते हैं। एसक्यूएल कमांड में कॉपी और रन

ALTER TABLE members DROP ID; 
ALTER TABLE members AUTO_INCREMENT = 1; 
ALTER TABLE members ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; 
संबंधित मुद्दे