सबसे पहले, न्यूनतम . पर आपको एक SELECT ... FOR UPDATE
करना चाहिए इसलिए आप पंक्तियों को अन्य SELECT ... FOR [SHARE|UPDATE]
. के सामने लॉक कर दें पहुँच। आपको इसे लेन-देन के अंदर करना होगा और उस लेन-देन को तब तक रोकना होगा जब तक आप अंतिम पंक्ति को अपडेट नहीं करते और commit
.
वे पंक्तियाँ जिन्हें आप SELECT ... FOR UPDATE
नहीं सामान्य के विरुद्ध लॉक किया गया SELECT
; वे अभी भी अन्य लेन-देन के लिए पठनीय हैं जो FOR UPDATE
. का उपयोग नहीं कर रहे हैं या FOR SHARE
।
बेहतर अभी भी, पूरी बात को UPDATE ... FROM
. के रूप में फिर से लिखने का प्रयास करें या अन्य सेट-आधारित ऑपरेशन जहां आप एक ही प्रश्न में सभी काम करते हैं। यह आम तौर पर SELECT ... FOR UPDATE
. की तुलना में व्यापक रूप से बेहतर प्रदर्शन करेगा उसके बाद UPDATE
. की एक धारा एस.