मैं Access में AutoNumber का पहला मान कैसे सेट करूँ?


9

मुझे इस प्रश्न की तरह AutoNumber मान को रीसेट करने की आवश्यकता नहीं है , बल्कि पहले नंबर को इस पर सेट करना चाहते हैं:

1001

जो तब सामान्य की तरह वृद्धि:

1001

1002

1003

...

मैं एक्सेस 2010 में इसे कैसे करूं?


5
उत्तर नहीं, लेकिन एक चेतावनी: ऑटोनम्बर को इस तरह से प्रबंधित करने के लिए डिज़ाइन नहीं किया गया है। मैंने देखा है अनगिनत लोग इसे आजमाते हैं। यह कभी भी काम नहीं करता है क्योंकि DB कभी-कभी वेतन वृद्धि में अजीब चीजें करेगा (असफल लेखन अभी भी संख्या में वृद्धि, उदाहरण के लिए)। ऑटोनम्बर यह गारंटी नहीं देता है कि रिकॉर्ड संख्या लगातार होगी। वास्तव में, दुर्लभ मामलों में यह गारंटी नहीं देगा कि संख्या अद्वितीय होगी। यह एक छोटी मेज के लिए एक प्राथमिक कुंजी बनाने के लिए बहुत उपयोगी है। यह बड़ी तालिकाओं के लिए थोड़ा जोखिम भरा है। यह वास्तविक डेटा क्षेत्र के रूप में उपयोग करने के लिए बिल्कुल भयानक है। वह
बेकन बिट्स

@BaconBits ... तो AutoNumber का उपयोग करने के लिए क्या मतलब है?
जेम्स मेर्ट्ज़

बाकी @ बेकनबीट्स की टिप्पणी: nce आप इस तरह के लेख देखते हैं जब कुछ नाशपाती के आकार का हो जाता है क्योंकि लोग उम्मीद करते हैं कि ऑटोनम्बर कुछ ऐसा नहीं होगा। यदि आपको इस तरीके से नंबर जेनरेट करने हैं, तो प्रश्नों को लिखें और डीबी में इसे स्वयं ठीक से करें।
स्टैक ओवरफ्लो

जवाबों:


16

हालांकि एक्सेस मूल रूप से इस फ़ंक्शन की पेशकश नहीं करता है, इसे निम्नलिखित की तरह एक क्वेरी के माध्यम से प्राप्त किया जा सकता है:

CREATE TABLE TableThatIncrements
(
Id AUTOINCREMENT(1001,1)
)

यह एक एकल तालिका बनाएगा जिसे "Id" नाम से एकल स्तंभ के साथ "TableThatIncrements" कहा जाता है। अब आप संपत्तियों और / या अन्य स्तंभों को जोड़ने के लिए तालिका संपादक का उपयोग कर सकते हैं।

परिवर्तन

AUTOINCREMENT(x,y)

अपनी आवश्यकताओं के अनुसार, जहां xशुरुआती वेतन वृद्धि संख्या है और yवृद्धि के साथ संख्या है। तो AUTOINCREMENT(100,5)उपज होगी: 100, 105, 110, 115, आदि।

यदि आप किसी मौजूदा तालिका को बदलना चाहते हैं, तो निम्नलिखित क्वेरी का उपयोग करें। सुनिश्चित करें कि विशिष्ट तालिका टैब बंद है, इसलिए एक्सेस इसे लॉक कर सकती है और इसे बदल सकती है।

ALTER TABLE TableThatIncrements
   ALTER COLUMN Id AUTOINCREMENT(1001,1)

आप निम्नलिखित करके एक्सेस में एक क्वेरी चला सकते हैं:

  1. "बनाएँ" टैब पर जाएं और "क्वेरी डिज़ाइन" पर क्लिक करें
    यहाँ छवि विवरण दर्ज करें

  2. बस दिखाई देने वाली खिड़की को बंद करें जो आपको तालिकाओं का चयन करने के लिए कहता है, हमें इसकी आवश्यकता नहीं है।

  3. "डिज़ाइन" टैब पर जाएं और तब तक तीर के साथ बटन पर क्लिक करें जब तक आपको एक टेक्स्ट इनपुट स्क्रीन न मिल जाए। (डिफ़ॉल्ट रूप से, यह कहता है SELECT;)।
    यहाँ छवि विवरण दर्ज करें

  4. डिफ़ॉल्ट पाठ हटाएं और उपरोक्त क्वेरी पेस्ट करें।

  5. "रन" पर क्लिक करें।
    यहाँ छवि विवरण दर्ज करें


अच्छा जवाब, लेकिन यह एक नई तालिका बनाता है ... या क्या मैं गलत हूं? क्या यह पहले से निर्मित तालिका के भीतर किया जा सकता है?
जेम्स मेर्ट्ज़

@ क्रोनो ने मेरा जवाब अपडेट किया
स्टैक ओवरफ्लो

2

1- तालिका 1 बनाएं 2- बनाने के लिए जाओ -------> डिजाइन क्वेरी। 3- बंद तालिका 4- ऊपर से SQl पर जाएं। 5- इस कोड को विगत करें।

वैकल्पिक तालिका [TABLE1] ALTER COLUMN [Id] COUNTER (8982,1)


इस रूप में एक अलग कीवर्ड के उपयोग के लिए छोड़कर स्वीकार किए जाते हैं जवाब (और अन्य एक है एक ही प्रतीत होता है ज्यादा बेहतर प्रारूपित)। क्या आपका जवाब वास्तव में अलग है? क्या आप बता सकते हैं कैसे? क्या आपका जवाब बेहतर है? क्यों? कृपया टिप्पणियों में प्रतिक्रिया न दें; इसे स्पष्ट और अधिक पूर्ण बनाने के लिए अपना उत्तर संपादित करें।
स्कॉट

@Scott वास्तव में वे थोड़े अलग हैं: ALTER COLUMN Id AUTOINCREMENT (1001,1) और ALTER COLUMN [Id] COUNTER (8982,1) शब्द AUTOINCREMENT और COSTTER देखें लेकिन वे दोनों अपेक्षित रूप से काम करते हैं
willy winka

1
@willyw: सही है; मैंने कहा "एक ही ... एक अलग कीवर्ड के उपयोग को छोड़कर "।
स्कॉट


1

इस वेबसाइट पर आप जिस भी नंबर से चाहें अपना ऑटोनम्बर शुरू कर सकते हैं: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

आप एक अभिव्यक्ति के साथ एक क्वेरी बनाते हैं जो बदलने के लिए ऑटोनम्बर फ़ील्ड बताता है

"पहले, इस क्वेरी को चलाएं:

INSERT INTO tblName (ID) का चयन करें 999 Expr1 के रूप में

जहां tblName टेबल का नाम है, और ID AutoNumber फ़ील्ड का नाम है।

फिर, आपके द्वारा डाली गई पंक्ति को हटाने के लिए दूसरी क्वेरी चलाएँ:

DELETE से tblName WHERE ID = 999;

(वैकल्पिक रूप से, आप केवल तालिका खोल सकते हैं और मैन्युअल रूप से आपके द्वारा डाली गई पंक्ति को हटा सकते हैं।)

अब, तालिका में जोड़ा गया अगला रिकॉर्ड मूल्य 1000 को सौंपा गया है।

यह विधि एक नई तालिका के साथ, या एक ऐसी तालिका के साथ काम करती है जिसका AutoNumber अभी तक बीज मूल्य तक नहीं पहुँच पाया है। (बेशक, मौजूदा पंक्तियों के लिए आईडी फ़ील्ड नहीं बदली जाएगी, लेकिन बाद की पंक्तियाँ 1000 से शुरू होंगी।) "


0

आपको एक्सेस को ट्रिक करना है क्योंकि यह मानता है कि आप ऑटोनम्बर में रुचि नहीं रखते हैं जो इसे प्रदान करता है।

आपको कस्टम ऑटोनम्बर के साथ टेबल को शुरू करना होगा, जिसके लिए कुछ सेटअप की आवश्यकता होगी। लेकिन एक बार जब आप जा रहे हैं तो बस वहां से जुड़ना जारी रख सकते हैं।

Google "एक्सेस चेंज ऑटोनम्बर स्टार्ट" और ऐसा करने के लिए आपको कई विकल्प मिलेंगे। अधिकांश क्षेत्र को संशोधित करने के लिए एक परिशिष्ट क्वेरी बनाने पर भरोसा करते हैं।

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

MVPS.org से: http://access.mvps.org/access/tables/tbl0005.htm

यदि आप एक परिशिष्ट क्वेरी बनाने की तरह महसूस नहीं करते हैं, तो आप हमेशा तालिका सेट कर सकते हैं और एक्सेल से डमी डेटा की 1000 पंक्तियों को कॉपी और पेस्ट कर सकते हैं, रिकॉर्ड हटा सकते हैं जब तक कि आप 1001 नंबर पर न जाएं, और वहां से चले जाएं।

अद्यतन: कारण के लिए स्पष्टीकरण जोड़ना

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


वहाँ यह करने के लिए एक आसान तरीका हो सकता है ....
जेम्स Mertz

मुझे लगता है कि अच्छी खबर यह है कि अगर आपको इस तरह के ऑटोफ़ोन के साथ कई तालिकाओं को बनाने की आवश्यकता है, तो आप बस एक बना सकते हैं, इसे "टेम्पलेट" डेटाबेस फ़ाइल में सहेज सकते हैं, और इसे नई डेटाबेस फ़ाइलों में कॉपी कर सकते हैं जैसे कि आपको इसकी आवश्यकता है।
संगीत 2

0

यह एक बहुत पुराना धागा है, लेकिन फिर भी यह एक शीर्ष तीन Google खोज परिणाम के रूप में पॉप अप होता है।

उपयोगकर्ता द्वारा ऑटोनोम्बर फ़ील्ड के मान को बदलने का एक कारण डेटाबेस संपादन के कारण हुई त्रुटि को ठीक करना हो सकता है। जब कोई व्यवस्थापक किसी डेटाबेस के सामने के छोर पर कुछ बड़े बदलाव करना चाहता है, तो वह व्यवस्थापक सभी संबंधित तालिकाओं की प्रतियां बना सकता है, और फ्रंट बैक के एक डेवलपमेंट कॉपी को इन बैक एंड्स पर पुनर्निर्देशित कर सकता है। यदि परिवर्तन पर्याप्त रूप से पर्याप्त हैं, तो वह परीक्षण के बाद सभी लिंक किए गए तालिकाओं को पुनर्निर्देशित करते हुए, अपनी प्रतिलिपि के साथ सामने के छोर की उत्पादन कॉपी को बदल सकता है।

कोई बात नहीं, है ना? ठीक है, फ्रंट एंड के साथ ऑटोनंबर इंक्रीप्शन रहता है। इसलिए यदि उत्पादन पक्ष केवल 50 या 500 या 5000 की संख्या में ऑटोनम्बर को बढ़ाता है, जबकि व्यवस्थापक कॉपी पर काम कर रहा था, तो नई उत्पादन प्रतिलिपि उन्हीं नंबरों को पुनः प्राप्त करके उन क्षेत्रों में आइटम दर्ज करने में सक्षम नहीं होगी, एक एक समय में, जब तक यह "स्पष्ट" नहीं हो जाता। एक्सेल डेटा की 50, 500, या 5000 पंक्तियों की प्रतिलिपि बनाएँ और इसे पेस्ट करने का प्रयास करें। यह प्रत्येक पंक्ति पर त्रुटि करेगा (जब यह पॉप अप हो जाए तो आगे के संदेशों को दबाना सुनिश्चित करें), लेकिन ऑटोनम्बर उस राशि से वेतन वृद्धि करेंगे और आप अच्छे होंगे फिर से जाना यदि आप इस तरह से ऑटोनोअर्स का उपयोग कर रहे हैं, तो यह सलाह दी जाएगी कि अपनी विकास प्रति के साथ ओवरराइट करने से पहले जो भी उत्पादन डीबी है, उसे संख्या में वृद्धि करें।

यह भी 1 से अधिक कुछ पर अपना ऑटोनम्बर शुरू करने का एक तरीका है। अपने जियोसिटीज होमपेज पर पृष्ठ विज़िट्स काउंटर को 17,479 पर सेट करने के पुराने दिनों की तरह, जब वास्तव में केवल 16 बार दौरा किया गया था। आप से।


0

कुछ इसी तरह प्राप्त करने का एक सरल तरीका एक ऑटोनम्बर फ़ील्ड (जैसे "आईडी") और दूसरा परिकलित फ़ील्ड (जैसे "आइटमआईडी") है और परिकलित फ़ील्ड के लिए सूत्र "1000+ [आईडी]" दर्ज करें। यह नया फ़ील्ड अब स्वचालित रूप से ऑटोनम्बर फ़ील्ड को ट्रैक करेगा, लेकिन 1 के बजाय 1001 से शुरू होगा।


0

मेरा मानना ​​है कि यह पहली बार एक छिपा हुआ टेबल बनाकर अपने कस्टम वेतन वृद्धि रेंज को प्राप्त किया जा सकता है, जो कि आपकी पसंद के लिए शून्य से शुरू होने वाली ऑटो वेतन वृद्धि का प्रारंभिक अंतर रखेगा, उदा। वह तालिका 0 से 1050 तक रहेगी फिर आप वेतन वृद्धि 1055, 1060, 1065 आदि पर शुरू करेंगे। फिर आप तालिका से डेटा के इस हिस्से को छिपाएंगे। उम्मीद है की यह मदद करेगा। प्रवेश जैसे दृश्यों को शुरू में शून्य से देखने के लिए डिज़ाइन किया गया था, क्योंकि संघर्ष उत्पन्न होंगे।

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