कोई आर्डर बाय
नहीं है अद्यतन
में कमांड।
लेकिन 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 गतिरोध से बचना
- पोस्टग्रेज में समवर्ती अपडेट को ऑप्टिमाइज़ करना