एक तालिका में जहां प्रत्येक पंक्ति में एक काउंटर (सिर्फ एक पूर्णांक मान) होता है, मुझे वर्तमान मूल्य प्राप्त करने और उसी समय इसे बढ़ाने की आवश्यकता होती है ।
प्रभावी रूप से, मैं यह करना चाहता हूं:
SELECT counter FROM table WHERE id=123
UPDATE table SET counter=counter+1 WHERE id=123
लेकिन दो प्रश्नों के रूप में ऐसा करना स्पष्ट रूप से थ्रेड-सुरक्षित नहीं है: एक ही चीज़ (एक ही पंक्ति पर) करने वाली कई प्रक्रियाएँ समान काउंटर मान प्राप्त कर सकती हैं। मुझे उन सभी की आवश्यकता है जो अद्वितीय हों, इसलिए प्रत्येक प्रक्रिया को वास्तविक वर्तमान मूल्य मिलेगा और इसे एक से बढ़ाना होगा।
मैं एक निर्माण के बारे में सोच सकता हूं जहां मैं प्रति पंक्ति एक मैनुअल लॉक लागू करता हूं, लेकिन मुझे आश्चर्य है कि क्या ऐसा करने का एक आसान तरीका है?