अद्यतन के लिए मैं खाद्य और बार तालिका से चयन कर रहा हूं। मैं फूड्स के रिकॉर्ड लॉक करना चाहता हूं जो लौटाए जा रहे हैं, लेकिन मैं नहीं चाहता कि बीएआर के रिकॉर्ड लॉक हो जाएं।चयन के साथ ओरेकल लॉकिंग ...
cursor c_foobar is
select foo.*, bar.* from
foo, bar
where foo.id = bar.foo_id
for update of <what should I put here?>
ऐसा लगता है कि मुझे अलग-अलग कॉलम निर्दिष्ट करने की आवश्यकता है, लेकिन मैं चाहता हूं कि foo का पूरा रिकॉर्ड लॉक हो। जैसे मुझे लगता है मैं कुछ ऐसा कर सकता है इच्छा:
cursor c_foobar is
select foo.*, bar.* from
foo, bar
where foo.id = bar.foo_id
for update of foo
मैं आदेश उन सब को लॉक करने के लिए for update of
खंड में foo के हर स्तंभ की गणना करने में है? या क्या मैं मनमाने ढंग से foo में किसी भी कॉलम का चयन कर सकता हूं, यहां तक कि जो लोग इसकी प्राथमिक कुंजी नहीं हैं, और यह पूरे रिकॉर्ड को लॉक कर देगा?
बहुत अच्छा, यकीन नहीं है कि मैं इसे कैसे चूक गया। तो मुझे लगता है कि इसे पंक्ति से किसी भी मनमाने ढंग से कॉलम नाम की आवश्यकता है ... आसान लेकिन मेरे लिए बहुत सहज नहीं लगता है। –
मैं सहमत हूं, ऐसा नहीं है। मुझे लगता है कि कहीं भी पढ़ना याद है कि कॉलम निर्दिष्ट करने की आवश्यकता है ताकि भविष्य के संस्करण में शायद ओरेकल केवल पंक्ति में विशेष कॉलम लॉक कर सके। लेकिन मेरी याददाश्त उस पर आलसी है। –
यह स्वयं-दस्तावेज़ कोड का एक रूप है, मुझे लगता है: "मैं केवल कॉलम 'वेतन' को अपडेट करना चाहता हूं" –