MySQL में LAST_INSERT_ID() और यूजर-डिफाइंड वेरिएबल का उपयोग करके अलग ऑटो-इन्क्रीमेंट आईडी सेट करना
दो टेबल के लिए अलग-अलग ऑटो-इन्क्रीमेंट आईडी सेट करने के लिए, आप LAST_INSERT_ID() फ़ंक्शन का उपयोग करके इसे एक यूजर-डिफाइंड वेरिएबल में स्टोर कर सकते हैं।
चरण-दर-चरण कार्यान्वयन
पहली टेबल बनाना (ऑटो-इन्क्रीमेंट के साथ)
mysql> CREATE TABLE DemoTable1 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
पहली टेबल में रिकॉर्ड डालना
mysql> INSERT INTO DemoTable1 VALUES(NULL);
LAST_INSERT_ID() को वेरिएबल में स्टोर करना
mysql> SET @studentId = LAST_INSERT_ID();
दूसरी टेबल बनाना
mysql> CREATE TABLE DemoTable2 (Id INT);
वेरिएबल का उपयोग करके दूसरी टेबल में अलग आईडी डालना
mysql> INSERT INTO DemoTable2 VALUES(@studentId + 1);
दूसरी टेबल के रिकॉर्ड प्रदर्शित करना
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+------+
| Id |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
व्याख्या:
- पहली टेबल में
StudentIdऑटो-इन्क्रीमेंट है (1 से शुरू) LAST_INSERT_ID()अंतिम डाली गई आईडी लौटाता है (यहाँ 1)- इसे
@studentIdवेरिएबल में स्टोर किया गया - दूसरी टेबल में
@studentId + 1(यानी 2) डाला गया - इस प्रकार दोनों टेबल की आईडी अलग-अलग हैं
उपयोगी परिदृश्य: जब आपको संबंधित टेबल में सिंक्रनाइज़ लेकिन अलग आईडी की आवश्यकता होती है।