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

क्या MySQL में AUTO_INCREMENT के लिए PRIMARY KEY अनिवार्य है?

AUTO_INCREMENT के लिए PRIMARY KEY आवश्यक है

MySQL में AUTO_INCREMENT कॉलम के लिए PRIMARY KEY (या UNIQUE KEY) परिभाषित करना अनिवार्य है।

सही टेबल स्ट्रक्चर

CREATE TABLE DemoTable (
    EmployeeId INT NOT NULL AUTO_INCREMENT,
    EmployeeName VARCHAR(40),
    EmployeeAge INT,
    PRIMARY KEY(EmployeeId),
    UNIQUE KEY(EmployeeName, EmployeeAge)
);

टेबल डिस्क्रिप्शन

DESC DemoTable;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| EmployeeId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| EmployeeName | varchar(40) | YES  | MUL | NULL    |                |
| EmployeeAge  | int(11)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+

डेटा इन्सर्ट करना (ID ऑटो जनरेट)

INSERT INTO DemoTable(EmployeeName, EmployeeAge) VALUES('Chris', 25);
INSERT INTO DemoTable(EmployeeName, EmployeeAge) VALUES('Robert', 34);
INSERT INTO DemoTable(EmployeeName, EmployeeAge) VALUES('Mike', 32);

आउटपुट

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| 1          | Chris        | 25          |
| 3          | Mike         | 32          |
| 2          | Robert       | 34          |
+------------+--------------+-------------+

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

  1. AUTO_INCREMENT कॉलम PRIMARY KEY या UNIQUE KEY का हिस्सा होना चाहिए
  2. एक टेबल में केवल एक AUTO_INCREMENT कॉलम हो सकता है
  3. AUTO_INCREMENT कॉलम NOT NULL होना चाहिए
  4. इन्सर्ट में मान न दें (या NULL/0 दें) - MySQL अपने आप जनरेट करेगा

गलत उदाहरण (एरर देगा)

CREATE TABLE BadTable (
    Id INT AUTO_INCREMENT,  -- कोई PRIMARY KEY नहीं
    Name VARCHAR(20)
);
-- ERROR 1075 (42000): Incorrect table definition; 
-- There can be only one auto column and it must be defined as a key

UNIQUE KEY के साथ विकल्प

CREATE TABLE DemoTable2 (
    Id INT NOT NULL AUTO_INCREMENT,
    Email VARCHAR(100),
    UNIQUE KEY(Id),  -- PRIMARY KEY के बजाय UNIQUE KEY भी काम करता है
    UNIQUE KEY(Email)
);

AUTO_INCREMENT मान रीसेट करना

ALTER TABLE DemoTable AUTO_INCREMENT = 1000;
  1. - MySQL में प्रारंभिक मान और ऑटो इन्क्रीमेंट कैसे सेट करें?

    AUTO_INCREMENT विशेषता का उपयोग नई रो के लिए एक अद्वितीय पहचानकर्ता उत्पन्न करने के लिए किया जाता है। यदि किसी कॉलम को NOT NULL घोषित किया गया है, तो उस कॉलम को NULL असाइन करना संभव है ताकि संख्याओं का अनुक्रम उत्पन्न हो सके। जब किसी AUTO_INCREMENT कॉलम में कोई मान डाला जाता है, तो कॉलम उस मान पर

  1. ट्किंटर में ttk कॉम्बोबॉक्स के लिए डिफ़ॉल्ट वैल्यू सेट करना? ट्किंटर में ttk कॉम्बोबॉक्स के लिए डिफ़ॉल्ट वैल्यू सेट करना?

    ट्किंटर कॉम्बोबॉक्स का उपयोग एंट्री विजेट में ड्रॉप-डाउन मेनू जोड़ने के लिए किया जाता है, जिससे यह किसी भी एप्लिकेशन के मल्टीपल डेटा को हैंडल करने के लिए उपयोगी बनाता है। कॉम्बोबॉक्स विजेट को Combobox(arguments) का उपयोग करके बनाया जा सकता है। हालांकि, किसी एप्लिकेशन की विशेष आवश्यकता के लिए, हम कॉ

  1. - Python Dictionary में दी गई कुंजी के लिए मान कैसे प्रिंट करें?

    Python Dictionary में कुंजी से मान प्राप्त करना Python डिक्शनरी कुंजी-मान जोड़े का संग्रह है। किसी निश्चित कुंजी से जुड़ा मान get() मेथड द्वारा लौटाया जाता है। >>> D1 = {a: 11, b: 22, c: 33} >>> D1.get(b) 22 आप स्क्वायर ब्रैकेट्स में कुंजी का उपयोग करके भी मान प्राप्त कर सकते हैं