MySQL में ऑप्टिमिस्टिक लॉकिंग को समझना
ऑप्टिमिस्टिक लॉकिंग एक प्रोग्रामिंग अभ्यास है जो टकराव को रोकने में मदद करता है जब कई उपयोगकर्ता एक ही डेटा को अपडेट करने का प्रयास करते हैं डेटाबेस. जबकि MySQL मूल रूप से आशावादी लॉकिंग का समर्थन नहीं करता है, इसे मानक SQL कथनों का उपयोग करके कार्यान्वित किया जा सकता है। संस्करण जाँच के रूप में। इसमें यह जांचना शामिल है कि क्या डेटा को प्रारंभ में पुनर्प्राप्त किए जाने के बाद किसी अन्य उपयोगकर्ता द्वारा संशोधित किया गया है। यह जांच अपडेट लागू करने से पहले की जाती है ताकि यह सुनिश्चित किया जा सके कि डेटा का नवीनतम संस्करण संशोधित किया जा रहा है।
आशावादी लॉकिंग लागू करने के लिए कदम
MySQL में आशावादी लॉकिंग लागू करने के लिए , निम्नलिखित चरणों का पालन किया जा सकता है:
डेटा का चयन करें:
SELECT स्टेटमेंट का उपयोग करके अपडेट किए जाने वाले डेटा को पुनः प्राप्त करें।# डेटा चुनें आईडी, नाम, संस्करण चुनें उपयोगकर्ताओं से जहां आईडी = 1; # अद्यतन मानों की गणना करें new_name = 'जॉन डो' नया_संस्करण = संस्करण 1 # संस्करण जांच के साथ डेटा अपडेट करें उपयोगकर्ताओं को अद्यतन करें सेट नाम = @new_name, संस्करण = @new_version जहां आईडी = 1 और संस्करण = @old_version; # प्रभावित पंक्तियों की जाँच करें ROW_COUNT() को प्रभावित_पंक्तियों के रूप में चुनें; #संघर्ष को संभालें यदि प्रभावित_पंक्तियाँ = 0 शुरू --संघर्ष हुआ - यहां संघर्ष को संभालें अंत; अन्य शुरू -- सफलतापूर्वक नवीनीकरण - एप्लिकेशन लॉजिक के साथ जारी रखें END;
संस्करण जांच के विकल्प
# Select data
SELECT id, name, version
FROM users
WHERE id = 1;
# Calculate updated values
new_name = 'John Doe'
new_version = version 1
# Update data with version check
UPDATE users
SET name = @new_name,
version = @new_version
WHERE id = 1
AND version = @old_version;
# Check affected rows
SELECT ROW_COUNT() AS affected_rows;
# Handle conflict
IF affected_rows = 0
BEGIN
-- Conflict occurred
-- Handle the conflict here
END;
ELSE
BEGIN
-- Update successful
-- Continue with the application logic
END;
टाइमस्टैंप जांच:
डेटा संशोधनों की जांच करने के लिए टाइमस्टैंप कॉलम का उपयोग करता है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3