मारियाडीबी में, LAST_INSERT_ID()
एक अंतर्निहित फ़ंक्शन है जो AUTO_INCREMENT
के लिए सफलतापूर्वक डाला गया पहला स्वचालित रूप से जेनरेट किया गया मान देता है सबसे हाल ही में निष्पादित INSERT
. के परिणामस्वरूप कॉलम बयान।
इसे तर्क के साथ भी बुलाया जा सकता है, इस मामले में, यह अभिव्यक्ति का मूल्य और अगली कॉल LAST_INSERT_ID()
पर लौटाता है वही मान लौटाएगा।
सिंटैक्स
फ़ंक्शन को निम्नलिखित तरीकों से बुलाया जा सकता है:
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
जहां expr
लौटाया जाता है, और अगली कॉल LAST_INSERT_ID()
. पर की जाती है वही मान लौटाएगा।
उदाहरण
उदाहरण के तौर पर, आइए एक AUTO_INCREMENT
. के साथ एक टेबल बनाएं कॉलम:
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
guest_id
कॉलम AUTO_INCREMENT
का उपयोग करता है इसके मूल्य के लिए।
अब कुछ पंक्तियाँ डालें:
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
अब चलिए LAST_INSERT_ID()
चलाते हैं :
SELECT LAST_INSERT_ID();
परिणाम:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
यह 3
returns लौटाता है ।
अब, तालिका में सभी पंक्तियों को यह सत्यापित करने के लिए लौटाते हैं कि अंतिम पंक्ति में एक AUTO_INCREMENT
है 3
. का मान डाला गया:
SELECT *
FROM guest;
परिणाम:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
guest_id
कॉलम 3
. तक जाता है .
एक तर्क सहित
जैसा कि उल्लेख किया गया है, यदि तर्क के साथ बुलाया जाता है, तो फ़ंक्शन अभिव्यक्ति का मान और अगली कॉल LAST_INSERT_ID()
पर लौटाता है वही मान लौटाएगा।
SELECT LAST_INSERT_ID(9);
परिणाम:
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
अब इसे फिर से कॉल करें, लेकिन बिना किसी तर्क के:
SELECT LAST_INSERT_ID();
परिणाम:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
यह अभी भी 9
. का मान देता है ।
हालांकि, अगर हम अपने guest
. में मान डालना जारी रखते हैं तालिका, AUTO_INCREMENT
जारी रहेगा जहां उसने उस टेबल पर छोड़ा था:
INSERT INTO guest (guest_name) VALUES ('Lisa');
अब चलिए LAST_INSERT_ID()
चलाते हैं :
SELECT LAST_INSERT_ID();
परिणाम:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
यह 4
returns लौटाता है ।
और यहाँ तालिका अब कैसी दिखती है:
SELECT *
FROM guest;
परिणाम:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
इस फ़ंक्शन के बारे में अधिक जानकारी के लिए, मारियाडीबी दस्तावेज़ीकरण देखें।