2011-08-09 12 views
5

मैं "जॉइन" के संबंध में "अद्यतन के लिए" का उपयोग करने के सटीक अर्थशास्त्र को समझना चाहता हूं। क्या यह सिर्फ उन सभी पंक्तियों को लॉक करता है जिनका प्रभावी परिणाम अंतिम परिणाम बनाने के लिए उपयोग किया जाता था? क्या यह कुछ और करता है?"अद्यतन के लिए" और "जॉइन" के लिए एसक्यूएल अर्थशास्त्र

इस विषय से:

http://postgresql.1045698.n5.nabble.com/Select-For-Update-and-Left-Outer-Join-td4363154.html

मैं समझता हूँ कि वहाँ डेटाबेस कार्यान्वयन के बीच कुछ महत्वपूर्ण मतभेद हैं। हालांकि मुझे यकीन नहीं है। मुझे वहां किसी भी लोकप्रिय आरडीबीएमएस के व्यवहार में दिलचस्पी है, हालांकि विशेष रूप से PostgreSQL।

उत्तर

10

आपको यह सही मिला है। जॉइन के साथ "अपडेट के लिए चयन करें" में, लौटाई गई पंक्तियों में योगदान देने वाली किसी भी पंक्ति को लॉक कर दिया जाएगा। आप "अद्यतन के लिए" table_a "को जोड़कर इस व्यवहार को बदल सकते हैं ताकि तालिका_ए से केवल पंक्तियां लॉक हो जाएंगी। आप Postgres डॉक्स यहाँ में इस बारे में और अधिक पढ़ सकते हैं:

http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE

+1

ओह, table_xyz' के इस 'अच्छी खबर है और मुझे बहुत मदद मिलेगी। बहुत धन्यवाद – julkiewicz

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