2011-06-26 13 views
12

मुझे इस विषय पर कुछ अन्य प्रश्न मिल गए। यह एक ...PHP पोस्टग्रेस: ​​अंतिम सम्मिलित करें आईडी

mysql_insert_id alternative for postgresql

... और the manual संकेत मिलता है कि आप lastval() किसी भी समय फोन कर सकते हैं लगता है और यह उम्मीद के रूप में काम करेंगे। लेकिन इस एक ...

Postgresql and PHP: is the currval a efficent way to retrieve the last row inserted id, in a multiuser application?

... राज्य के लिए है कि यह एक सौदे के भीतर हो गया है लगता है। तो मेरा सवाल यह है: क्या मैं बस lastval() (लेनदेन के बिना) पूछताछ से पहले मुझे पसंद कर सकता हूं? और क्या यह कई समवर्ती कनेक्शन के चेहरे पर भरोसेमंद है?

+0

अनुक्रम लेनदेन पर नहीं सत्र पर निर्भर करता है। लेकिन इस बीच अन्य प्रश्नों का इंतजार करना और निष्पादित करना अच्छा नहीं है, आपको अन्य प्रश्नों का अंतिम भाग मिल सकता है। – jordani

उत्तर

28

सम्मिलित करें, अद्यतन और PostgreSQL में DELETE लौटने वाला खंड आप कर सकते हैं, जिसका मतलब है की है। सर्वर पर एक roundtrip बचाता है।

+0

इस उत्तर के लिए बहुत बहुत धन्यवाद! वास्तव में मुझे जो चाहिए वह कुछ कार्यों के लिए आवश्यक प्रश्नों की संख्या को कम करता है। –

+2

धन्यवाद! बीटीडब्ल्यू, यदि आवश्यक हो, तो आप कई मान वापस कर सकते हैं - रिटर्निंग * पूरी सम्मिलित पंक्ति वापस कर देगा। – SamGoody

+0

यदि आप आईडी फ़ील्ड का नाम नहीं जानते हैं तो क्या होगा? – JoeTidee

6

हां, the sequence functionsबहुउद्देश्यीय सुरक्षित अनुक्रम वस्तुओं से क्रमिक अनुक्रम मूल्य प्राप्त करने के तरीकों को प्रदान करता है।

INSERT INTO .... 
RETURNING id; 

फिर क्वेरी मूल्य उसे डाला प्रत्येक पंक्ति के लिए आईडी के लिए डाला वापस आ जाएगी:

+1

मुझे यह देखकर बहुत खुशी हुई कि अनुक्रम अब एएनएसआई हैं - ऑटोमेशन/पहचान बहुत सीमित हैं। –

+0

उत्कृष्ट, धन्यवाद। – Jonah

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