उत्तर: LAST_INSERT_ID()
MySQL में SQL Server के SCOPE_IDENTITY() के समकक्ष LAST_INSERT_ID() फंक्शन है।
सिंटैक्स
SELECT LAST_INSERT_ID();
यह अंतिम सम्मिलित रिकॉर्ड की ऑटो-इन्क्रीमेंट ID लौटाता है।
व्यावहारिक प्रदर्शन: ट्रिगर के साथ व्यवहार
दो टेबल बनाना
-- मुख्य टेबल
mysql> CREATE TABLE TestOnLastInsertIdDemo (
StudentId INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(StudentId)
);
-- ट्रिगर द्वारा भरी जाने वाली टेबल
mysql> CREATE TABLE TestOnLastInsertIdDemo2 (
Id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(Id)
);
दूसरी टेबल में 8 डमी रिकॉर्ड डालना
mysql> INSERT INTO TestOnLastInsertIdDemo2 VALUES(),(),(),(),(),(),(),();
ट्रिगर बनाना
mysql> DELIMITER //
mysql> CREATE TRIGGER insertingTrigger
AFTER INSERT ON TestOnLastInsertIdDemo
FOR EACH ROW BEGIN
INSERT INTO TestOnLastInsertIdDemo2 VALUES();
END //
mysql> DELIMITER ;
मुख्य टेबल में रिकॉर्ड डालना
mysql> INSERT INTO TestOnLastInsertIdDemo VALUES();
LAST_INSERT_ID() जांचना
mysql> SELECT LAST_INSERT_ID();
+------------------+ | LAST_INSERT_ID() | +------------------+ | 1 | +------------------+
महत्वपूर्ण व्यवहार
LAST_INSERT_ID() मूल टेबल (TestOnLastInsertIdDemo) की ID लौटाता है, न कि ट्रिगर के अंदर डाली गई टेबल (TestOnLastInsertIdDemo2) की। यह SCOPE_IDENTITY() के व्यवहार से मेल खाता है जो वर्तमान स्कोप की पहचान लौटाता है।
अन्य संबंधित फंक्शन
LAST_INSERT_ID()- कनेक्शन के लिए पहली ऑटो-इन्क्रीमेंट मान।LAST_INSERT_ID(expr)- अगली कॉल के लिए मान सेट करता है।