2012-07-16 17 views
6

क्या यह "तुलना और स्वैप" कथन हमेशा इंजन (जैसे इनो डीडी या माईसाम) पर ध्यान दिए बिना परमाणु है? :MySDB बनाम MySDB बनाम MySQL पर MySQL परमाणु अद्यतन

UPDATE tbl_name SET locked=1 WHERE id=ID AND locked <> 1; 

मैं इस पूछना क्योंकि मैं छद्म पंक्ति-स्तर लॉकिंग कि दोनों व्यवहार और गैर लेन-देन डेटाबेस तालिकाओं के साथ संगत है करने के लिए इस कथन का उपयोग करना चाहते हैं।

यह विधि है जो recommended for MyISAM है, लेकिन मुझे यह अनिश्चित है कि यह इनओडीबी के लिए काम करता है क्योंकि दस्तावेज़ीकरण लेनदेन का उपयोग करके सुझाव देता है।

+0

लिंक टूटा हुआ है। इसलिए, इस पृथक बयान का उपयोग अस्पष्ट है। –

उत्तर

4

हां। इनो डीबी में, पंक्ति लॉक हो जाएगी (आपके पास आईडी पर एक अनूठी अनुक्रमणिका है, अपडेट को स्कैन करने के लिए सभी पंक्तियों को ताला लगा देता है), अपडेट किया गया और लॉक जारी किया गया। यदि आप एक स्पष्ट लेनदेन/ऑटो-प्रतिबद्धता में नहीं हैं, तो प्रत्येक कथन अपने लेनदेन में चलाया जाता है, लेकिन यह अभी भी एक लेनदेन है और लॉकिंग

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