फपीडामिन में ऑटो वृद्धि


94

मेरे पास PHP, MySQL और phpMyAdmin का उपयोग करके एक मौजूदा डेटाबेस है।

जब उपयोगकर्ता मेरी वेबसाइट पर एक सदस्य बन जाते हैं, तो मुझे पांच अंकों की संख्या का उपयोग करके उनके लिए एक अद्वितीय सदस्यता संख्या बनाने के लिए सिस्टम की आवश्यकता होती है। उदाहरण के लिए 83773। मुझे लगता है कि यह एक यादृच्छिक पासवर्ड उत्पन्न करने जैसा है, सिवाय इसके कि मैं केवल अपने सदस्यों के लिए नंबर चाहता हूं। यह आईडी नंबर प्रत्येक सदस्य के लिए विशिष्ट होना चाहिए।

क्या मेरे लिए यह संभव होगा कि मैं अपनी उपयोगकर्ता तालिका में auto_increment की प्राथमिक कुंजी सेट करूँ और इसे 10000 पर शुरू करूँ और फिर हर बार एक सदस्य रजिस्टर में स्वतः वृद्धि करूँ?

इसके अलावा, क्या कोई अधिकतम संख्या है जो प्राथमिक कुंजी आईडी संख्या तक जाएगी?

क्या यह एक विश्वसनीय और सुरक्षित तरीका है कि सदस्यता नंबर के रूप में प्राथमिक कुंजी आईडी नंबर का उपयोग करें?


3
नीचे दिए गए कुछ लोगों ने उत्तर दिया कि प्राथमिक कुंजी की कोई ऊपरी सीमा नहीं है, लेकिन मुझे लगता है कि ऊपरी सीमा आपके द्वारा चयनित डेटा प्रकार का अधिकतम आकार है ... शायद मैं गलत हूं, लेकिन इंट नहीं होगा 4294967295 के अधिकतम मूल्य तक सीमित है? dev.mysql.com/doc/refman/5.0/en/numeric-types.html
सैम

कृपया स्वीकृत उत्तर चुनें। मुझे लगता है कि यह एक stackoverflow.com/a/18942684/248616 है
नाम जी VU

जवाबों:


201

एक कॉलम के लिए ऑटो वेतन वृद्धि को सक्षम करने के लिए संभव कदम हैं। मुझे लगता है कि phpMyAdmin संस्करण 3.5.5 है, लेकिन निश्चित नहीं है।

पर क्लिक करें तालिका > संरचना टैब> के तहत कार्रवाई के लिए क्लिक करें प्राथमिक (प्राथमिक के रूप में सेट), पर क्लिक करें बदलें पॉप-अप विंडो पर, बाएँ स्क्रॉल और जाँच a_i । यह भी सुनिश्चित करें कि आपने डिफ़ॉल्ट के लिए कोई भी नहीं चुना हैयहां छवि विवरण दर्ज करें


5
चूंकि ऑटो-इंक फ़ीचर को ऑपरेशन टैब से हटा दिया गया था, इसलिए ऐसा प्रतीत होता है कि इसे अब कैसे लागू किया जाए। धन्यवाद, @AmitKB
S. पर माइक एस।

2
हालाँकि जब मैंने कोशिश की कि मुझे यह त्रुटि मिली: Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
याकोव ऐन्सपैन

संदेश स्पष्ट है, आप एक से अधिक ऑटो कॉलम रखने की कोशिश कर सकते हैं।
अमित भगत

1
एक समान मुद्दा था और इसने मेरी समस्या को ठीक कर दिया
Callat

1
वाह, इतना सरल। इसका उल्लेख किसी ने क्यों नहीं किया? मुझे इस तरह का जवाब खोजने में बहुत समय लगा। अब तक का सबसे अच्छा जवाब।
ओल्डबॉय

52

PhpMyAdmin में, प्रश्न में तालिका पर जाएँ और "ऑपरेशन" टैब पर क्लिक करें। तालिका विकल्प के नीचे बाईं ओर आपको वर्तमान AUTO_INCREMENT मान सेट करने की अनुमति होगी।


5
जब मैं ऐसा करता हूं तो मेरे केवल दो विकल्प जोड़ने के बारे में auto_increment "मूव टेबल" या "कॉपी टेबल" हैं। मैं न तो तालिका को स्थानांतरित करना चाहता हूं और न ही कॉपी करना चाहता हूं, लेकिन बस auto_increment जोड़ें। क्या हो रहा है?? मैं MySQL v5.6 का उपयोग कर रहा हूँ।
ओल्डबॉय

@oldboy मैं तुम्हारे जैसा ही मिलता हूं। शायद उन्होंने XAMPP PhpMyAdmin
kevind

21

बस एक साधारण MySQL क्वेरी चलाएं और जो आप चाहते हैं उसके लिए ऑटो इंक्रीमेंट नंबर सेट करें।

ALTER TABLE `table_name` AUTO_INCREMENT=10000

अधिकतम के संदर्भ में, जहां तक ​​मुझे पता है कि कोई भी नहीं है, और न ही ऐसी संख्या को सीमित करने का कोई तरीका है।

यह एक प्राइमरी कुंजी, ऑटो इंक्रीमेंटिंग इंट के रूप में एक आईडी नंबर सेट करने के लिए पूरी तरह से सुरक्षित है, और सामान्य अभ्यास है। एक विशिष्ट प्रारूप में आपके लिए सदस्यता नंबर उत्पन्न करने के लिए PHP का उपयोग करने जैसे विकल्प हैं और फिर डालने से पहले संख्या की जांच करना मौजूद नहीं है, हालांकि मेरे लिए व्यक्तिगत रूप से मैं प्राथमिक आईडी auto_inc मान के साथ जाऊंगा।


10
  1. अपनी तालिका के "संरचना" टैब में
  2. उस चर के पेंसिल पर क्लिक करें जिसे आप auto_increment चाहते हैं
  3. "अतिरिक्त" टैब के अंतर्गत "auto_increment" चुनें
  4. फिर अपनी तालिका के "ऑपरेशन" टैब पर जाएं
  5. "तालिका विकल्प" के तहत -> ऑटो_संचालन प्रकार -> 10000

2

PhpMyAdmin में, यदि आप अपनी तालिका में एक फ़ील्ड को ऑटो वेतन वृद्धि के लिए सेट करते हैं, और फिर एक पंक्ति डालें और उस फ़ील्ड का मान 10000 पर सेट करें, यह वहाँ से जारी रहेगा।


2

@AmitKB, आपकी प्रक्रिया सही है। यद्यपि यह त्रुटि

क्वेरी त्रुटि: # 1075 - गलत तालिका परिभाषा; केवल एक ऑटो कॉलम हो सकता है और इसे एक कुंजी के रूप में परिभाषित किया जाना चाहिए

पहले फ़ील्ड को कुंजी के रूप में चिह्नित करके (लेबल प्राथमिक के साथ कुंजी आइकन का उपयोग करके) हल किया जा सकता है, जब तक कि आपके पास अन्य कुंजी न हो तो यह काम नहीं कर सकता है।


जब से मैंने phpMyAdmin के साथ खेला है तब से बहुत समय हो गया है मैं यह भूल गया कि यह कैसे करना है। इस माध्यमिक समस्या को ठीक करने के लिए धन्यवाद। इसने मेरे लिए काम किया।
rncrtr

0

आप एक अधिकतम मान सेट नहीं कर सकते हैं (डेटाटाइप चुनने के अलावा जो बड़ी संख्या में पकड़ नहीं कर सकते हैं, लेकिन कोई भी सीमा नहीं है जो आपके लिए पूछ रहे हैं)। आप नए बनाए गए सदस्य की आईडी प्राप्त करने के लिए डालने के बाद LAST_INSERT_ID () के साथ देख सकते हैं, और यदि यह आपके एप्लिकेशन कोड में बहुत बड़ा है (जैसे, हटाएं और सदस्य को अस्वीकार करें)।

आप एक ऊपरी सीमा क्यों चाहते हैं?


0

इस की वजह से है wp_terms, wp_termmetaऔर wp_term_taxonomyटेबल है, जो सभी के लिए अपने आईडी पर सेट नहीं कर रहा है थाAUTO_INCREMENT

ऐसा करने के लिए, phpmyadmin पर जाएं, चिंता डेटाबेस पर क्लिक करें, wp_termsतालिका, संरचना टैब पर क्लिक करें, दाईं ओर आपको एक टैब नाम दिखाई देगा A_I(AUTO_INCREMENT), इसे जांचें और सहेजें (आप केवल पहले विकल्प के लिए ऐसा wp_termकर रहे हैं , जिस स्थिति में आप हैं केवल के लिए यह कर term_id)।

के लिए भी ऐसा ही करें wp_termmetaऔर wp_term_taxonomyइससे समस्या ठीक हो जाएगी।


ऐसा लगता है जैसे आपको लगता है कि ओपी वर्डप्रेस का उपयोग कर रहा है, आपको यह जानकारी कहां से मिली? मुझे इस प्रश्न में WP का कोई संदर्भ नहीं मिल रहा है।
राउल सौको

0

(ए) बस अपने डेटाबेस पर क्लिक करें, अपनी तालिका चुनें। 'संचालन' पर क्लिक करें। 'तालिका विकल्प' अनुभाग के तहत, इस मामले में AUTO_INCREMENT मूल्य को अपने इच्छित मूल्य में बदल दें: 10000 'गो' पर क्लिक करें। (संलग्न चित्र देखें)

(b) वैकल्पिक रूप से, आप अपनी तालिका का चयन करने के बाद SQL टैब के तहत SQL कमांड चला सकते हैं। बस 'ALTER TABLE table_name AUTO_INCREMENT = 10000;' टाइप करें। इसके बाद 'गो' पर क्लिक करें। बस!! स्वत: स्थापना मूल्य छवि (क)

सेटिंग स्वत: स्थापना मूल्य छवि (B)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.