यह समाधान द्वारा सुझाया गया है MySQl मैनुअल :
<ब्लॉकक्वॉट>यदि expr को LAST_INSERT_ID() के तर्क के रूप में दिया जाता है, तो तर्क का मान फ़ंक्शन द्वारा वापस कर दिया जाता है और इसे LAST_INSERT_ID() द्वारा वापस किए जाने वाले अगले मान के रूप में याद किया जाता है। इसका उपयोग अनुक्रमों का अनुकरण करने के लिए किया जा सकता है:
सीक्वेंस काउंटर को होल्ड करने के लिए एक टेबल बनाएं और इसे इनिशियलाइज़ करें:
mysql> CREATE TABLE sequence (id INT NOT NULL);
mysql> INSERT INTO sequence VALUES (0);
इस तरह अनुक्रम संख्या उत्पन्न करने के लिए तालिका का उपयोग करें:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();
अद्यतन विवरण अनुक्रम काउंटर को बढ़ाता है और अद्यतन किए गए मान को वापस करने के लिए अगली कॉल LAST_INSERT_ID () का कारण बनता है। चयन कथन उस मान को पुनः प्राप्त करता है। मूल्य प्राप्त करने के लिए mysql_insert_id() C APIfunction का भी उपयोग किया जा सकता है। धारा 23.8.7.37, “mysql_insert_id ()” देखें।
आप LAST_INSERT_ID () को कॉल किए बिना अनुक्रम उत्पन्न कर सकते हैं, लेकिन इस तरह से फ़ंक्शन का उपयोग करने की उपयोगिता यह है कि आईडी मान सर्वर में अंतिम स्वचालित रूप से जेनरेट किए गए मान के रूप में बनाए रखा जाता है। यह बहु-उपयोगकर्ता सुरक्षित है क्योंकि कई क्लाइंट UPDATEस्टेटमेंट जारी कर सकते हैं और SELECT स्टेटमेंट (या mysql_insert_id ()) के साथ अपना खुद का सीक्वेंस वैल्यू प्राप्त कर सकते हैं, अन्य क्लाइंट्स से प्रभावित या प्रभावित हुए बिना जो अपने स्वयं के अनुक्रम मान उत्पन्न करते हैं।