यदि आप कॉलम के साथ AUTO_INCREMENT का उपयोग कर रहे हैं, तो आप last_insert_id() मेथड का उपयोग कर सकते हैं। यह मेथड MySQL में अंतिम इन्सर्ट किए गए रिकॉर्ड की ID प्राप्त करता है।
सिंटैक्स निम्नलिखित है:
SELECT LAST_INSERT_ID();
उपरोक्त सिंटैक्स को समझने के लिए, आइए एक टेबल बनाते हैं। टेबल बनाने की क्वेरी निम्नलिखित है:
mysql> create table LastInsertedRow
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20),
-> UserAge INT
-> ); Query OK, 0 rows affected (0.56 sec)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।
क्वेरी निम्नलिखित है:
mysql> insert into LastInsertedRow(UserName,UserAge) values('John',23); Query OK, 1 row affected (0.19 sec)
mysql> insert into LastInsertedRow(UserName,UserAge) values('Carol',24); Query OK, 1 row affected (0.16 sec)
mysql> insert into LastInsertedRow(UserName,UserAge) values('Bob',24); Query OK, 1 row affected (0.08 sec)
mysql> insert into LastInsertedRow(UserName,UserAge) values('Larry',26); Query OK, 1 row affected (0.09 sec)
mysql> insert into LastInsertedRow(UserName,UserAge) values('Maxwell',27); Query OK, 1 row affected (0.10 sec)
mysql> insert into LastInsertedRow(UserName,UserAge) values('David',22); Query OK, 1 row affected (0.10 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी निम्नलिखित है:
mysql> select * from LastInsertedRow;
निम्नलिखित आउटपुट है:
+----+----------+---------+ | Id | UserName | UserAge | +----+----------+---------+ | 1 | John | 23 | | 2 | Carol | 24 | | 3 | Bob | 24 | | 4 | Larry | 26 | | 5 | Maxwell | 27 | | 6 | David | 22 | +----+----------+---------+ 6 rows in set (0.00 sec)
अंतिम इन्सर्ट की गई रो प्राप्त करने की क्वेरी निम्नलिखित है:
mysql> SELECT LAST_INSERT_ID();
निम्नलिखित आउटपुट है:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 6 | +------------------+ 1 row in set (0.00 sec)
यदि आप पूरी रो चाहते हैं, तो निम्नलिखित क्वेरी का उपयोग करें:
mysql> SELECT * FROM LastInsertedRow WHERE Id = (SELECT LAST_INSERT_ID());
निम्नलिखित आउटपुट है:
+----+----------+---------+ | Id | UserName | UserAge | +----+----------+---------+ | 6 | David | 22 | +----+----------+---------+ 1 row in set (0.05 sec)