आपको इसे एक ही प्रश्न में करने में सक्षम होना चाहिए:UPDATE foo SET सॉर्ट_इंडेक्स =सॉर्ट_इंडेक्स + 1 की तर्ज पर कुछ जहां bar_id ==b और सॉर्ट_इंडेक्स
, जहां b
bar_id
है स्थानांतरित की जाने वाली पंक्ति का, s1
वर्तमान sort_index
है उस पंक्ति का, और s2
सॉर्ट_इंडेक्स
है आप इसे स्थानांतरित करना चाहते हैं। फिर, आप बस sort_index
. को बदल देंगे पंक्ति का।
आप शायद लेनदेन के अंदर दो प्रश्न करना चाहेंगे। साथ ही, अगर आप sort_index
. पर एक इंडेक्स बनाते हैं, तो यह चीजों को गति दे सकता है कुछ इस तरह का उपयोग करना ।
(वैसे, यहाँ मैं मान रहा हूँ कि आप डुप्लिकेट sort_index
नहीं चाहते हैं किसी दिए गए bar_id
. के भीतर मान , और पंक्तियों के सापेक्ष क्रम को स्पष्ट रूप से छोड़कर कभी नहीं बदला जाना चाहिए। यदि आपको इसकी आवश्यकता नहीं है, तो समाधान और भी आसान है।)