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 | +------------+--------------+-------------+
महत्वपूर्ण नियम
- AUTO_INCREMENT कॉलम PRIMARY KEY या UNIQUE KEY का हिस्सा होना चाहिए
- एक टेबल में केवल एक AUTO_INCREMENT कॉलम हो सकता है
- AUTO_INCREMENT कॉलम NOT NULL होना चाहिए
- इन्सर्ट में मान न दें (या 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;