INFORMATION_SCHEMA.TABLES से AUTO_INCREMENT मान प्राप्त करना
MySQL में किसी टेबल के लिए अगला AUTO_INCREMENT मान जानने के लिए INFORMATION_SCHEMA.TABLES को क्वेरी करें।
सिंटैक्स
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'yourDatabaseName' AND TABLE_NAME = 'yourTableName';
उदाहरण
1. टेबल बनाना
mysql> CREATE TABLE DemoTable (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20),
ClientAge INT
);
Query OK, 0 rows affected (1.33 sec)
2. डेटा डालना
mysql> INSERT INTO DemoTable(ClientName, ClientAge) VALUES('John', 23);
mysql> INSERT INTO DemoTable(ClientName, ClientAge) VALUES('Carol', 21);
mysql> INSERT INTO DemoTable(ClientName, ClientAge) VALUES('Bob', 24);
mysql> INSERT INTO DemoTable(ClientName, ClientAge) VALUES('David', 25);
3. मौजूदा रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable;
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | John | 23 | | 2 | Carol | 21 | | 3 | Bob | 24 | | 4 | David | 25 | +----------+------------+-----------+ 4 rows in set (0.00 sec)
4. अगला AUTO_INCREMENT मान देखना
mysql> SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'sample' AND TABLE_NAME = 'DemoTable';
+----------------+ | AUTO_INCREMENT | +----------------+ | 5 | +----------------+ 1 row in set (0.20 sec)
अन्य उपयोगी तरीके
SHOW TABLE STATUS
SHOW TABLE STATUS LIKE 'DemoTable';
इसमें Auto_increment कॉलम में अगला मान दिखता है।
LAST_INSERT_ID() (केवल अंतिम इन्सर्ट के लिए)
SELECT LAST_INSERT_ID();
यह वर्तमान सत्र में अंतिम इन्सर्ट किया गया AUTO_INCREMENT मान लौटाता है।
महत्वपूर्ण नोट्स
- AUTO_INCREMENT मान डिलीट करने के बाद भी बढ़ता रहता है (रीसेट नहीं होता)
- TRUNCATE TABLE से AUTO_INCREMENT रीसेट हो जाता है
- DELETE FROM से AUTO_INCREMENT रीसेट नहीं होता
- ALTER TABLE ... AUTO_INCREMENT = N से मान मैन्युअली सेट कर सकते हैं