एसक्यूएल में, तालिका को अपडेट कैसे करें, प्रत्येक पंक्ति के लिए कॉलम को एक अलग मान पर सेट करें?PostgreSQL अनुक्रम का उपयोग कर SQL में अद्वितीय मानों को कैसे अपडेट करें?
मैं एक पोस्टग्रेएसक्यूएल डेटाबेस में कुछ पंक्तियों को अपडेट करना चाहता हूं, एक कॉलम को अनुक्रम से किसी संख्या में सेट करना चाहता हूं, जहां उस कॉलम में एक अद्वितीय बाधा है। मुझे आशा थी कि मैं सिर्फ इस्तेमाल कर सकते हैं:
update person set unique_number = (select nextval('number_sequence'));
लेकिन ऐसा लगता है कि nextval केवल एक बार कहा जाता है, तो अद्यतन हर पंक्ति के लिए एक ही नंबर का उपयोग करता है, और मैं एक 'नकली चाबी अद्वितीय बाधा का उल्लंघन करती है' प्राप्त होने वाले त्रुटि । इसके बजाय मुझे क्या करना चाहिए?
धन्यवाद - यह काम करता है। मैं उप-चयन द्वारा पकड़ा गया क्योंकि मैं दो स्तंभों के लिए समान अनुक्रम संख्या का उपयोग करने की कोशिश कर रहा था, लेकिन मुझे वास्तव में ऐसा करने की आवश्यकता नहीं है। –
यदि आप अगलीवाल ('अनुक्रम') कहने के बाद समान अनुक्रम मान का पुन: उपयोग करना चाहते हैं, तो आप संबंधित फ़ंक्शन currval ('अनुक्रम') का उपयोग कर सकते हैं, जो वर्तमान अनुक्रम देता है। – cms