MySQL में प्रारंभिक मूल्य और ऑटो वेतन वृद्धि कैसे सेट करें?


288

मैं एक MySQL तालिका में "आईडी" कॉलम के लिए प्रारंभिक मान कैसे सेट करूं जो 1001 से शुरू हो?

मैं एक इंसर्ट करना चाहता हूं "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";

आईडी कॉलम के लिए प्रारंभिक मूल्य निर्दिष्ट किए बिना।

जवाबों:


518

इसे इस्तेमाल करो:

ALTER TABLE users AUTO_INCREMENT=1001;

या यदि आपने पहले से कोई आईडी कॉलम नहीं जोड़ा है, तो उसे भी जोड़ें

ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);

2
मुझे लगता है कि यह 7 साल पहले था, लेकिन ... क्या मुझे इस उत्तर के कुछ हिस्सों का स्पष्टीकरण मिल सकता है? ADD INDEXयहाँ क्या करता है? क्या मुझे इसे idकॉलम के समान स्टेटमेंट में जोड़ना होगा , या क्या मैं ब्लॉक और फिर idकॉलम को परिभाषित कर सकता हूं ? CREATE TABLEADD INDEX(id)
माइकल हॉफमैन

2
हे, समय बीतता है ... ज़रूर, अगर आप ऐसा करने में सक्षम हैं, तो इसे क्रिएट टेबल में परिभाषित करें। उत्तर के दूसरे "ALTER TABLE" भाग का अर्थ है कि आपने पहले ही एक तालिका बना ली है, और यह पहले से ही उचित सूचकांक के बिना कहीं न कहीं तैनात है, जो पहले "ALTER TABLE" के लिए आवश्यक है। मुझे उम्मीद है कि यह स्पष्टीकरण मदद करता है।
अनातोलीय

हाँ, यह मदद करता है। मैं कुछ नमूनों को देख रहा था, जो इन बयानों का समान रूप से उपयोग करते थे, और वे अब अधिक समझ में आते हैं। धन्यवाद।
माइकल हॉफमैन

1
ADD INDEX का कारण यह है कि इसके बिना, यदि आपके पास पहले से ही मौजूदा मेज पर एक प्राथमिक कुंजी है, तो आपको मिलेगा there can be only one auto column and it must be defined as a key। आपको इंडेक्स की आवश्यकता है इसलिए यह एक MUL कुंजी होगी।
djsumdog

मैंने इसे एक मेज पर आज़माया जो अभी तक बिना किसी पंक्तियों के बनाई गई थी। लगता है कि यह तब तक काम नहीं करता है जब तक कि तालिका में पहले से कम से कम 1 पंक्ति नहीं जोड़ी गई हो।
सोलोमन क्लॉसन

54

MySQL - 1001 से शुरू होने वाली ऑटो-इन्क्रिमेंटिंग प्राथमिक कुंजी सेट करें:

चरण 1, अपनी तालिका बनाएं:

create table penguins(
  my_id       int(16) auto_increment, 
  skipper     varchar(4000),
  PRIMARY KEY (my_id)
)

चरण 2, ऑटो वृद्धि प्राथमिक कुंजी के लिए प्रारंभ संख्या निर्धारित करें:

ALTER TABLE penguins AUTO_INCREMENT=1001;

चरण 3, कुछ पंक्तियाँ डालें:

insert into penguins (skipper) values("We need more power!");
insert into penguins (skipper) values("Time to fire up");
insert into penguins (skipper) values("kowalski's nuclear reactor.");

चरण 4, आउटपुट की व्याख्या करें:

select * from penguins

प्रिंट:

'1001', 'We need more power!'
'1002', 'Time to fire up'
'1003', 'kowalski\'s nuclear reactor'

1
यदि मैं विशेष पेंगुइन के लिए एक आईडी <1000 सेट करना चाहता हूं तो मुझे कैसे करना चाहिए?
विलियम हू

1
आप कोई भी मुफ्त आईडी डाल सकते हैं, बस इसे कॉलम सूची में डाल सकते हैं: insert into penguins (my_id, skipper) values(999, "explicit id");(जब ऑटो वृद्धि मूल्य के 0बजाय का उपयोग किया 999जाएगा)
नरककोड

32

MySQL कार्यक्षेत्र

यदि आप sql लिखने से बचना चाहते हैं, तो आप इसे टेबल पर राइट क्लिक करके MySQL Workbench में भी कर सकते हैं, मेनू में "Alter Table ..." चुनें।

जब तालिका संरचना दृश्य खुलता है, टैब "विकल्प" (दृश्य के निचले तल पर) पर जाएं, और अगले ऑटोइन्क्रिमेंट नंबर के मूल्य पर "ऑटो इंक्रीमेंट" फ़ील्ड सेट करें।

जब आप सभी परिवर्तनों के साथ किए जाते हैं तो "लागू करें" को हिट करना न भूलें।

phpMyAdmin:

यदि आप phpMyAdmin का उपयोग कर रहे हैं, तो आप बाईं ओर के नेविगेशन में तालिका पर क्लिक कर सकते हैं, टैब "ऑपरेशंस" पर जा सकते हैं और तालिका विकल्प के तहत AUTO_INCREMENT मान को बदल सकते हैं और ठीक पर क्लिक कर सकते हैं।


1
आप phpMyAdmin के बारे में बात कर रहे हैं?
पैशियर

1
नहीं, मुझे लगता है कि वह MySQL कार्यक्षेत्र के बारे में बात कर रहा है।
सैटर्नियन

@ सैटर्नियन, हाँ, आप सही हैं, मेरा मतलब वर्कबेंच से है। मैं अपनी पोस्ट को स्पष्ट करने के लिए संपादित करूंगा।
बोजन हर्नकास

phpMyAdmin ने एक कदम में एक ऑटोइन्क्रिमेंट समस्या को हल किया, मैंने कोड रूट पर जाने की कोशिश की और यह काम नहीं कर रहा था।
टेकगामी

11

सबसे पहले आपको ऑटो वेतन वृद्धि के लिए कॉलम जोड़ना होगा

alter table users add column id int(5) NOT NULL AUTO_INCREMENT FIRST

पहली बार में कॉलम जोड़ने के लिए यह क्वेरी। अब आपको ऑटो इंक्रीमेंट प्रारंभिक मूल्य रीसेट करना होगा। तो इस क्वेरी का उपयोग करें

alter table users AUTO_INCREMENT=1001

अब आपकी तालिका 1001 से शुरू हुई


6

आप इसे create tableस्टेटमेंट में भी सेट कर सकते हैं ।

`CREATE TABLE(...) AUTO_INCREMENT=1000`

5

इसके अलावा, PHPMyAdmin में , आप बाईं ओर से तालिका का चयन कर सकते हैं (तालिकाओं की सूची) फिर वहां जाकर ऐसा करें।
संचालन टैब-> तालिका विकल्प-> AUTO_INCREMENT।

अब, अपना मान सेट करें और फिर तालिका विकल्प बो x के तहत जाएं दबाएं ।


4

इसके लिए आपको AUTO_INCREMENTमूल्य निर्धारित करना होगा

ALTER TABLE tablename AUTO_INCREMENT = <INITIAL_VALUE>

उदाहरण

ALTER TABLE tablename AUTO_INCREMENT = 101

3

वैकल्पिक रूप से, यदि आप SQL क्वेरी लिखने के लिए बहुत आलसी हैं। फिर यह समाधान आपके लिए है। यहां छवि विवरण दर्ज करें

  1. खुला हुआ PhpMyAdmin
  2. वांछित का चयन करें तालिका का
  3. ऑपरेशंस पर क्लिक करें टैब
  4. के लिए अपना वांछित प्रारंभिक मान सेट करें AUTO_INCREMENT के
  5. किया हुआ..!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.