2012-04-19 12 views
57

में एक मूल्य बढ़ाना मैं पोस्टग्रेज़ के लिए थोड़ा नया हूं। मैं पोस्टग्रेस टेबल में किसी फ़ील्ड में एक मान (जो एक पूर्णांक है) लेना चाहता हूं और इसे एक से बढ़ाता हूं। उदाहरण के लिए यदि तालिका 'योग' में 2 कॉलम, 'नाम' और 'कुल' था, और बिल में कुल 203 था, तो बिल के कुल को 204 तक ले जाने के लिए मैं क्या SQL कथन का उपयोग करूंगा?पोस्टग्रेर्स

उत्तर

116
UPDATE totals 
    SET total = total + 1 
WHERE name = 'bill'; 

क्या आप वाकई वर्तमान मूल्य वास्तव में 203 है (और गलती से इसे फिर से वृद्धि नहीं) बनाने के लिए आप भी एक और शर्त जोड़ सकते हैं चाहते हैं:

UPDATE totals 
    SET total = total + 1 
WHERE name = 'bill' 
    AND total = 203; 
+0

मैं ** गैर पूर्णांक बढ़ाने के लिए कोशिश कर रहा था ** डेटाटाइप और प्राप्त करना: 'त्रुटि: ऑपरेटर मौजूद नहीं है: चरित्र भिन्न + पूर्णांक लाइन 2: एसईटी कुल = कुल + 1' इस' एसईटी कुल = कुल :: int + 1 की तरह पूर्णांक के रूप में मूल्य कास्टिंग करके हल किया गया ' –

+19

@ स्टू-एयू: वर्कर स्तंभों में *** स्टोर नंबर *** *** नहीं। इससे आपको लंबे समय तक परेशानी होगी। एक पूर्णांक (या bigint या जो भी उपयुक्त है) का उपयोग करें, लेकिन एक चरित्र डेटाटाइप का उपयोग न करें। –

+2

क्या यह कथन परमाणु है या क्या मुझे पहले लिखने के लिए टेबल को निराशाजनक रूप से लॉक करना होगा? (मेरा डर यह है कि कुल असाइन करने और कुल के लिए कुल मिलाकर + 1 के बीच कुछ लेखन तालिका में किया गया है।) – miho

संबंधित मुद्दे