2010-02-03 6 views

उत्तर

9

नहीं, आप एक क्वेरी में दो टेबलों में एकाधिक प्रविष्टियां नहीं कर सकते हैं।

2

शायद माइस्क्लुएल की भविष्य में रिलीज में आप 2 टेबल युक्त व्यू बना सकते हैं और उसमें सम्मिलित कर सकते हैं।
लेकिन MySQL 5.1.41 के साथ त्रुटि मिलेगी:

लेकिन 1 क्वेरी के साथ 2 टेबल में डालने के लिए एक अजीब बात है "एक में शामिल होने के दृश्य के माध्यम से एक से अधिक आधार तालिका संशोधित नहीं कर सकते" करें, और मैं इसे की अनुशंसा नहीं करता हूं।


अद्यतन करने योग्य विचारों के बारे में अधिक जानकारी के लिए MySQL reference देखें।

+0

एक परमाणु (यानी सभी या कुछ नहीं होता) ऑपरेशन के हिस्से के रूप में एकाधिक तालिकाओं को अपडेट करना (या डालना) करना अजीब नहीं है। आपके डेटाबेस जितना अधिक सामान्य होगा, उतनी ही अधिक आवश्यकता होगी। आपको बस डीबी लेनदेन में कई अपडेट की रक्षा करने की आवश्यकता है। –

+0

सच है, लेकिन जब मैं एक * एकल * सम्मिलन कथन देखता हूं, तो मुझे लगता है कि केवल 1 तालिका प्रभावित होती है। "अजीब" भाग 1 क्वेरी पहलू पर लागू होता है। –

3

आप एक संग्रहित प्रक्रिया को दो तालिकाओं में सम्मिलित कर सकते हैं।

+0

उत्तर हाँ है और यह है कि आप इसे कैसे करते हैं। उपयोगी है जब आपके पास एक डी कथन में कई प्रविष्टियों को जोड़ने के लिए आपके डीबी के लिए लंबी विलंबता है। – Mark

4

नहीं आप नहीं कर सकते।

यदि आप एक ऑपरेशन की परमाणुता सुनिश्चित करना चाहते हैं जिसके लिए डेटा को 2 टेबल में डालने की आवश्यकता है, तो आपको इसे लेनदेन में सुरक्षित रखना चाहिए। आप या तो SQL कथन BEGIN TRAN और COMMIT TRAN का उपयोग करते हैं, या आप डीबी एक्सेस लेयर को विकसित करने के लिए जो भी भाषा उपयोग कर रहे हैं उसमें आप एक लेनदेन सीमा का उपयोग करते हैं। जैसे कुछ त्रुटि जैसे Connection.StartTransaction और Connection.Commit (या Connection.Rollback किसी त्रुटि पर)।

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