मैं postgres में निम्न तालिका है:postgres autoincrement स्पष्ट आईडी पर अद्यतन नहीं सम्मिलित करता
CREATE TABLE "test" (
"id" serial NOT NULL PRIMARY KEY,
"value" text
)
मैं निम्नलिखित सम्मिलन कर रहा हूँ:
insert into test (id, value) values (1, 'alpha')
insert into test (id, value) values (2, 'beta')
insert into test (value) values ('gamma')
पहले 2 आवेषण में मैं स्पष्ट रूप से आईडी का उल्लेख कर रहा हूँ । हालांकि इस मामले में तालिका का ऑटो वृद्धि सूचक अपडेट नहीं किया गया है।
ERROR: duplicate key value violates unique constraint "test_pkey"
DETAIL: Key (id)=(1) already exists.
मैं दोनों MyISAM और InnoDB इंजन में MySQL में इस समस्या का सामना करना पड़ा कभी नहीं: इसलिए 3 डालने में मैं त्रुटि मिलती है। स्पष्ट या नहीं, mysql हमेशा अधिकतम पंक्ति आईडी के आधार पर ऑटोइनक्रिकमेंट पॉइंटर अपडेट करता है।
पोस्टग्रेज़ में इस समस्या के लिए समाधान क्या है? मुझे इसकी ज़रूरत है क्योंकि मैं अपनी मेज में कुछ आईडी के लिए कड़ा नियंत्रण चाहता हूं।
अद्यतन: मुझे इसकी आवश्यकता है क्योंकि कुछ मूल्यों के लिए मुझे एक निश्चित आईडी की आवश्यकता है। अन्य नई प्रविष्टियों के लिए मुझे नए बनाने में कोई फर्क नहीं पड़ता।
मुझे लगता है कि जब भी मैं स्पष्ट रूप से आईडी को सम्मिलित कर रहा हूं तो nextval
पॉइंटर max(id) + 1
पर मैन्युअल रूप से बढ़ाना संभव हो सकता है। लेकिन मुझे यकीन नहीं है कि यह कैसे करें।
@ Milen एक Radev +1, धन्यवाद है कि यह किया! – jerrymouse
अजीब व्यवहार। मैं भी MySQL से आ रहा हूँ। धन्यवाद! –
मैं एक ही समस्या में और आपके बीच और http://www.ruby-forum.com/topic/64428#72333 (आप मूल रूप से वही बात कहते हैं) में भाग गए हैं, आपने मेरी समस्या का समाधान किया है। धन्यवाद। – marsol0x