सरल उत्तर - नहीं, यह संभव नहीं है।
लंबा उत्तर, हां, यदि आप एक संग्रहीत कार्यविधि का उपयोग करते हैं जो निर्दिष्ट आईडी के लिए मान को बढ़ाता है, तो नया मान प्राप्त करता है और उसे वापस करता है।
मैंने अभी MySQL 5.1.59 के तहत इसका परीक्षण किया है:
CREATE PROCEDURE increment (IN uniqid VARCHAR(255))
BEGIN
UPDATE `table` SET number = number + 1 WHERE id = uniqid;
SELECT number FROM `table` WHERE id = uniqid;
END
उपयोग:
CALL increment(uniqid)
यदि एक साथ कई एक्सेस संभव हैं तो आप LOCK
. करना चाह सकते हैं तालिका पहले ऑपरेशन की परमाणुता सुनिश्चित करने के लिए - MySQL स्पष्ट रूप से संग्रहीत प्रक्रियाओं को तालिकाओं को स्वयं लॉक करने की अनुमति नहीं देता है।