যদি টেবিলে AUTO_INCREMENT কলাম থাকে, তবে শেষে ইনসার্ট করা রোয়ের ID পাওয়ার জন্য LAST_INSERT_ID() ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স
SELECT LAST_INSERT_ID();
উদাহরণ
টেবিল তৈরি:
mysql> CREATE TABLE LastInsertedRow (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName VARCHAR(20),
-> UserAge INT
-> );
ডেটা ইনসার্ট:
mysql> INSERT INTO LastInsertedRow(UserName, UserAge) VALUES('John', 23);
mysql> INSERT INTO LastInsertedRow(UserName, UserAge) VALUES('Carol', 24);
mysql> INSERT INTO LastInsertedRow(UserName, UserAge) VALUES('Bob', 24);
mysql> INSERT INTO LastInsertedRow(UserName, UserAge) VALUES('Larry', 26);
mysql> INSERT INTO LastInsertedRow(UserName, UserAge) VALUES('Maxwell', 27);
mysql> INSERT INTO LastInsertedRow(UserName, UserAge) VALUES('David', 22);
সকল রেকর্ড:
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 | +----+----------+---------+
শেষ ইনসার্ট আইডি:
mysql> SELECT LAST_INSERT_ID();
+------------------+ | last_insert_id() | +------------------+ | 6 | +------------------+
পুরো সারি পাওয়ার জন্য:
mysql> SELECT * FROM LastInsertedRow WHERE Id = (SELECT LAST_INSERT_ID());
+----+----------+---------+ | Id | UserName | UserAge | +----+----------+---------+ | 6 | David | 22 | +----+----------+---------+
গুরুত্বপূর্ণ: LAST_INSERT_ID() কানেকশন-স্পেসিফিক (connection-specific)। অন্য কানেকশন থেকে ইনসার্ট হলে এটি প্রভাবিত হয় না। একসাথে একাধিক রো ইনসার্ট করলে এটি প্রথম রোয়ের ID রিটার্ন করে।