2010-09-30 7 views
14

मेरे लाइवकोड सर्वर ऐप में मुझे सम्मिलन पर एक डबरर लौटा रहा है लेकिन कोई स्पष्ट त्रुटि कोड नहीं है।PostgreSQL INSERT पुष्टिकरण पैराम का क्या अर्थ है?

मैं टर्मिनल पर गया और उपयोगकर्ता पोस्टग्रेस के रूप में हाथ से सम्मिलन किया।

%My_Dbase=# INSERT INTO new-table (first_name, last_name, anonymous) VALUES ('batman', 'Moonboy', TRUE); 

psql प्रक्रिया रिटर्न:

INSERT 0 1 

इस लाइन क्या मतलब है? प्राथमिक तालिका के अलावा, मुख्य तालिका के प्राथमिक कुंजी आईडी (int) को बढ़ाने के लिए मेरे पास अनुक्रम भी है।

यदि मैं डेटा की जांच करता हूं, तो डेटा डाला जाता है, प्राथमिक कुंजी एक से बढ़ती है और सब कुछ ठीक लगता है, मुझे यकीन नहीं है कि मेरा ऐप एक त्रुटि क्यों लौट रहा है (ऐप या मेरे कोड में एक बग हो सकता है)।

लेकिन अगर मुझे पता था कि क्या INSERT 0 1 मतलब, कि मुझे अपने आप को विश्वास दिलाता हूं कि मदद मिलेगी:

  1. हाँ, प्रविष्टि त्रुटियों के बिना किया गया था, या
  2. नहीं है, 0 1 किसी प्रकार की त्रुटि दिखाता है।

अगर किसी के पास पोस्टग्रेएसक्यूएल दस्तावेज़ का लिंक है जो बताता है कि ये सर्वर प्रतिक्रिया पैरा क्या हैं, तो मैं इसका अध्ययन करूंगा ... मैंने हर जगह देखा है।

उत्तर

2

काफी हद तक, मुझे इसके बारे में कोई वास्तविक दस्तावेज नहीं मिल रहा है।

हालांकि http://www.postgresql.org/docs/current/interactive/rules-status.html और PQcmdStatus को http://www.postgresql.org/docs/current/interactive/libpq-exec.html के भीतर देखकर, ऐसा लगता है कि जो आप देख रहे हैं वह एक कमांड स्थिति है।

प्रारूप जो मैं प्रलेखन से कह रहा हूं वह प्रारूप COMMANDSTATUS_CODEROWS_AFFECTED है।

तो आप जो देख रहे हैं वह यह है कि आपने एक सम्मिलित किया है, स्थिति_code शून्य था, और एक पंक्ति प्रभावित हुई थी।

तो दूसरे शब्दों में, आपका आदेश सफलतापूर्वक पूरा हो रहा है!

+0

बकाया, धन्यवाद, मैंने बाद में इसे निर्धारित किया। मेरा मतलब है कि अगर मैं phpPGsql व्यवस्थापक में डेटा देखता हूं ... मुझे लगता है कि यह काम कर रहा था। @ मत्ती: प्राथमिक आईडी कुंजी लौटने पर वह युक्ति बहुत उपयोगी है ... मेरे पास एक है, हालांकि इसका नाम "donation_id" है और यह एक अनुक्रमित अनुक्रम के माध्यम से ऑटो वृद्धि हुई है। – katir

22
the relevant page in the manual से

अंश:

आउटपुट

सफल समापन पर, एक सम्मिलित करें आदेश प्रपत्र

सम्मिलित OID गिनती

गिनती का एक आदेश टैग रिटर्न की संख्या है पंक्तियां डाली गईं। यदि गिनती बिल्कुल एक है, और लक्ष्य तालिका में ओआईडी है, तो ओआईडी डाली गई पंक्ति को आवंटित ओआईडी है। अन्यथा शून्य शून्य है।

+3

इस उत्तर में एक अनुपूरक के रूप में, मान लीजिए कि आपके पास अपनी तालिका में "आईडी" नामक एक फ़ील्ड है जिसे अनुक्रम के माध्यम से स्वत: असाइन किया गया है, यदि आप फॉर्म में अपना सम्मिलन चलाते हैं "नई तालिका (first_name, last_name, अनाम) VALUES में INSERT ('बैटमैन', 'मूनबॉय', सही) वापसी आईडी ", संदेश" INSERT 0 1 "को बस डाले गए रिकॉर्ड में आईडी के नए मान द्वारा प्रतिस्थापित किया जाएगा। –

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