हाँ - एक हद तक।
SELECT
. कब तक साझा लॉक पर होल्ड करना लेन-देन के अलगाव स्तर पर निर्भर करता है:
READ UNCOMMITTED
- कोई साझा लॉक प्राप्त नहीं होता -UPDATE
अवरुद्ध नहीं हैREAD COMMITTED
- साझा लॉक केवल डेटा पढ़ने की अवधि के लिए प्राप्त किया जाता है -UPDATE
बहुत कम समय के लिए अवरुद्ध किया जा सकता हैREPEATABLE READ
औरSERIALIZABLE
- साझा लॉक प्राप्त कर लिया जाता है और लेन-देन के अंत तक जारी रहता है -UPDATE
SELECT
. तक ब्लॉक किया गया है लेन-देन समाप्त होता है
तकनीकी रूप से, UPDATE
स्टेटमेंट को पहले एक UPDATE
मिलता है लॉक - जो एक साझा लॉक के साथ संगत है (जैसा कि SELECT
. द्वारा उपयोग किया जाता है) ) - उस समय की अवधि के लिए जब यह अद्यतन की जाने वाली पंक्तियों के वर्तमान मानों को पढ़ रहा हो।
एक बार यह हो जाने के बाद, Update
तालिका में नया डेटा लिखे जाने के लिए लॉक को एक विशेष लॉक में बढ़ा दिया जाता है।