मैं एंटरप्राइज़ एप्लिकेशन के लिए डेटा आयात प्रक्रिया को दोबारा कर रहा हूं और एक स्निपेट में आया हूं, मैं एक बेहतर समाधान ढूंढना चाहता हूं। डेटा आयात करते समय हमें प्रत्येक डेटा सेट के लिए एक अद्वितीय इकाई बनाना होता है और अनुक्रमिक रूप से इस आईडी को असाइन करने के लिए उपयोग किए जाने वाले फ़ील्ड में एक काउंटर होता है। अगली बार आईडी तैयार करने के लिए आप इसे पढ़ते हैं और अगली बार तैयार करने के लिए इसे बाद में बढ़ाते हैं।ओरेकल एसक्यूएल: फ़ील्ड को पढ़ने और बढ़ाने के लिए
पल इस मूल अनुप्रयोग में दो कदम, 'सी' में लिखा में किया जाता है पर:
SELECT idnext FROM mytable;
UPDATE mytable SET idnext = idnext + 1;
जाहिर है वहाँ एक रेस स्थिति यहाँ है, कई प्रक्रियाओं एक ही बात करते हैं।
संपादित करें: महत्वपूर्ण कोरक्विससाइट: मैं डेटाबेस/फ़ील्ड परिभाषा को स्पर्श नहीं कर सकता, यह नियम अनुक्रम से बाहर है।
हम perl में पुनः लिख रहे हैं, और मैं वही काम करना चाहता हूं, लेकिन बेहतर। एक परमाणु समाधान अच्छा होगा। दुर्भाग्य से मेरे एसक्यूएल कौशल सीमित हैं, इसलिए मैं सामूहिक ज्ञान में बदल रहा हूं :-)
मैं अद्यतन एसक्यूएल केवल पर्याप्त सही लग रहा है 'अद्यतन mytable सेट idnext = idnext + 1,' आपको सर्वर पर idnext पढ़ने की आवश्यकता क्यों है? –