सबसे पहले चीज़ें, बहु-स्तंभ प्राथमिक कुंजी शायद एक बुरा विचार है; जैसा कि आपको पता चला है, यह अलग-अलग क्षेत्रों में हेरफेर करना मुश्किल बनाता है। आपको जो करना चाहिए वह उस तालिका में एक ऑटोइनक्रिकमेंट बिगिंट कॉलम जोड़ना है, जो आपकी नई प्राथमिक कुंजी बन जाएगी, और आपकी तीन-स्तंभ विशिष्टता बाधा इसके बजाय एक अद्वितीय अनुक्रमणिका हो सकती है। इसे बेहतर प्रदर्शन करना चाहिए... लेकिन यह आपको उस तरह का हेरफेर करने की भी अनुमति देगा जिसकी आपको आवश्यकता है। यह आपको संशोधन करने देगा लेकिन फिर भी आपको मूल पंक्तियों को उनके पूर्णांक अनुक्रमणिका द्वारा पहचानने देगा।
यदि आप ऐसा करते हैं, तो आपका "वन-टाइम अपडेट" अब सुरक्षित रूप से किया जा सकता है, जब तक कि आपको काम करने के लिए कुछ अस्थायी टेबल बनाने में कोई आपत्ति नहीं है। कुछ इस तरह:
समान स्कीमा के साथ कुछ अस्थायी तालिकाएँ बनाएँ, लेकिन अद्वितीय . के बिना तीन-स्तंभ अनुक्रमणिका - आपके पास एक गैर-अद्वितीय अनुक्रमणिका हो सकती है, क्योंकि यह आपके द्वारा निष्पादित की जाने वाली क्वेरी में सहायता करेगी;
उन रिकॉर्ड्स की प्रतिलिपि बनाएँ जिन्हें आपको पहली तालिका में संसाधित करने की आवश्यकता है (अद्वितीय पूर्णांक प्राथमिक कुंजी सहित);
सभी detail
अपडेट करें अस्थायी तालिका में आपको जिन स्तंभों को अद्यतन करने की आवश्यकता है;
INSERT ... SELECT
SUM
. के साथ और GROUP BY
उन अभिलेखों को दूसरी तालिका में मर्ज करने के लिए;
INSERT INTO temp2 (...whatever...) SELECT ...whatever..., SUM(no) FROM temp1 GROUP BY ...whatever...
अंत में, मूल तालिका से temp1 तालिका में सभी रिकॉर्ड हटाएं (पूर्णांक प्राथमिक कुंजी का उपयोग करके), और temp2 तालिका में रिकॉर्ड्स को मूल तालिका में डालें।