2013-07-25 5 views
9

मैं एक साधारण डालने आदेश दौड़ा लिया है पाने के लिए:कैसे पंक्ति पीजी से डाली गई आईडी :: परिणाम

INSERT INTO names (name) VALUES ('john')

एक प्रतिक्रिया मैं एक PG::Result object मिल के रूप में। मैं उन दस्तावेज़ों के माध्यम से खुदाई कर रहा हूं लेकिन मैं उस वस्तु से बाहर निकल नहीं सकता जिसकी मुझे आवश्यकता है: पंक्ति की आईडी क्या है जो मैंने अभी डाली है?

उत्तर

28
res = conn.exec("INSERT INTO names (name) VALUES ('john') returning *") 
res[0] 
res[0]['id'] 

मैं returning * इस्तेमाल किया सिर्फ तुम सब कुछ न सिर्फ आईडी लौट सकते हैं दिखाने के लिए। लेकिन जाहिर है अगर आप केवल आईडी या आईडी और कुछ अन्य स्तंभ की जरूरत स्पष्ट फार्म का उपयोग बस के रूप में आप एक चयन सूची

returning id, name 
+0

कोई विचार क्यों तुम यादृच्छिक downvote मिला में होगा। 'वापसी आईडी' का उपयोग करना बेहतर है, लेकिन अन्यथा यह सही समझ में आता है। –

+1

@ क्रैग हां आप सही हैं और मुझे स्पष्टीकरण मोड को चालू करना कभी नहीं भूलना चाहिए। अपडेट किया गया। –

+1

डाउन वोट हो सकता है क्योंकि "... रिटर्निंग" एक पोस्टग्रेस एक्सटेंशन है, और मानक एसक्यूएल नहीं है। जो एक उचित आलोचना हो सकती है, लेकिन सवाल विशेष रूप से पोस्टग्रेज़ को संदर्भित करता है, इसलिए यह निश्चित रूप से सबसे अच्छा जवाब है। – cvkline

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