कोई आर्डर बाय नहीं है अद्यतन में कमांड।
लेकिन SELECT . के लिए है . पंक्ति-स्तरीय लॉकिंग
अद्यतन के लिए खंड
एक सबक्वेरी में:
UPDATE foo f
SET a = 1
FROM (
SELECT b FROM foo
WHERE b IN (1,2,3,4)
ORDER BY b
FOR UPDATE
) upd
WHERE f.b = upd.b;
बेशक, b अद्वितीय होना चाहिए या आपको ORDER BY . में और भाव जोड़ने होंगे इसे स्पष्ट करने के लिए खंड।
और आपको सभी . के लिए समान आदेश लागू करने की आवश्यकता है अपडेट करें , हटाएं और चुनें .. अद्यतन के लिए मेज पर बयान।
संबंधित, अधिक विवरण के साथ:
- अपडेट पोस्ट करें ... LIMIT 1
- बल्क अपडेट और डिलीट ऑपरेशन करते समय PostgreSQL गतिरोध से बचना
- पोस्टग्रेज में समवर्ती अपडेट को ऑप्टिमाइज़ करना