2011-03-24 11 views
5

मान लीजिए मैं केवल एक स्तंभ CITY के साथ एक मेज में एसक्यूएल प्रश्नों (स्यूडोकोड) के निम्नलिखित सेट करें:एक लेनदेन के भीतर किए गए परिवर्तन एक दूसरे को "देखें" करते हैं?

BEGIN TRANSACTION; 
INSERT INTO MyTable VALUES('COOLCITY'); 
SELECT * FROM MyTable WHERE ALL; 
COMMIT TRANSACTION; 

SELECTCOOLCITY वापस जाने के लिए गारंटी है?

उत्तर

6

हां।

INSERT ऑपरेशन कम से कम नई जोड़े गए पंक्ति पर X लॉक आउट लेगा। लेनदेन के अंत तक यह जारी नहीं किया जाएगा इस प्रकार इस पंक्ति को हटाने या अद्यतन करने से समवर्ती लेनदेन को रोकता है।

एक लेनदेन अपने स्वयं के ताले से अवरुद्ध नहीं है, इसलिए SELECT COOLCITY लौटाएगा।

संबंधित मुद्दे