Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL AUTO_INCREMENT: डिफॉल्ट 1 से शुरू होता है, किसी अन्य संख्या से कैसे शुरू करें?

MySQL AUTO_INCREMENT: प्रारंभिक मान बदलना

MySQL में AUTO_INCREMENT डिफॉल्ट रूप से 1 से शुरू होता है। इसे ALTER TABLE या टेबल निर्माण के समय किसी अन्य संख्या से शुरू करने के लिए सेट किया जा सकता है।

डिफॉल्ट व्यवहार: 1 से शुरू

CREATE TABLE DemoTable (
    UniqueNumber INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (UniqueNumber)
);

INSERT INTO DemoTable VALUES (), (), (), ();

परिणाम:

+--------------+
| UniqueNumber |
+--------------+
| 1            |
| 2            |
| 3            |
| 4            |
+--------------+

विधि 1: ALTER TABLE से AUTO_INCREMENT बदलें

ALTER TABLE DemoTable AUTO_INCREMENT = 1000;

नए रिकॉर्ड डालें:

INSERT INTO DemoTable VALUES (), (), ();

परिणाम:

+--------------+
| UniqueNumber |
+--------------+
| 1            |
| 2            |
| 3            |
| 4            |
| 1000         |
| 1001         |
| 1002         |
+--------------+

विधि 2: टेबल निर्माण के समय सेट करें

CREATE TABLE DemoTable (
    UniqueNumber INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (UniqueNumber)
) AUTO_INCREMENT = 1000;

महत्वपूर्ण नियम

  • नया AUTO_INCREMENT मान वर्तमान अधिकतम मान से बड़ा होना चाहिए
  • यदि छोटा मान देंगे, तो MySQL इसे अनदेखा करके वर्तमान मैक्स+1 उपयोग करेगा
  • AUTO_INCREMENT केवल एक कॉलम पर हो सकता है (आमतौर पर प्राइमरी की)
  • इंजन InnoDB/MyISAM दोनों समर्थन करते हैं

वर्तमान AUTO_INCREMENT मान देखें

SHOW TABLE STATUS LIKE 'DemoTable';

Auto_increment कॉलम में अगला मान दिखेगा।

उपयोग केस

  • मर्ज/माइग्रेशन में ID टकराव से बचने के लिए
  • शार्डिंग: अलग सर्वर पर अलग रेंज (1-1000000, 1000001-2000000)
  • लीगेसी डेटा के साथ एकीकरण
  1. - MySQL में ENUM से वैल्यू कैसे हटाएं?

    MySQL में ENUM से वैल्यू हटाने के लिए ALTER कमांड का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable    (    `Rank` ENUM(LOW,MEDIUM,HIGH)    ); Query OK, 0 rows affected (0.52 sec) आइए टेबल का विवरण चेक कर

  1. - MySQL में ऑटो-इन्क्रीमेंट मान को 1 से शुरू करने के लिए कैसे सेट करें

    TRUNCATE TABLE के साथ ऑटो-इन्क्रीमेंट रीसेट करना टेबल को ट्रंकेट करके ऑटो-इन्क्रीमेंट मान को 1 से पुनः आरंभ करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT INTO DemoTable VALUES ();

  1. - MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल से एक कॉलम का मान दूसरे कॉलम से प्राप्त करें

    MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल (@var) का उपयोग करके पिछली पंक्ति के मान के आधार पर वर्तमान पंक्ति के लिए चल योग (क्यूमुलेटिव सम) या अन्य व्युत्पन्न मान की गणना कर सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1868 (Value INT); डेटा डालें mysql> INSERT INTO DemoTable1868 VALUES(10), (2