2011-03-29 12 views
10

की तरह उत्पादन के साथ INSERT मैं यकीन है कि MySQL INSERT INTO तालिका आउटपुट [स्तंभ मान] नहीं है कर रहा हूँ कि MSSQL है - http://msdn.microsoft.com/en-us/library/ms177564.aspx (या http://blogs.msdn.com/b/sqltips/archive/2005/06/13/output-clause.aspx)MySQL MSSQL

एक आसान तरीका यह दोहराने के लिए क्या है? (मैं एक एमएसएसएलएल ऐप को MySQL पर ले जा रहा हूं। 'आउटपुट' एक अद्वितीय पहचानकर्ता और वर्तमान में एक int है, तो हो सकता है कि मैं केवल MAX (int) चुनें और एक जोड़ूं, और डालने से पहले एक यूआईडी उत्पन्न कर सकता हूं?)

धन्यवाद

+0

वहाँ स्तंभ पर एक AUTO_INCREMENT है? यदि हां, तो 'LAST_INSERT_ID' का उपयोग करें। कोई तो इसके बजाय अधिकतम करने के लिए, वास्तव में होगा ... – Konerak

+0

नोट एमएस एसक्यूएल भी एक() 'LAST_INSERT_ID की तरह सुविधा' है:) सेट '@logSqlId = SCOPE_IDENTITY (;' आप एक आउटपुट पैरामीटर के रूप में उपयोग कर सकते हैं या logSqlId इससे 'चुनें'। इसके अलावा भविष्य पाठकों के लिए, Postgres पर विचार करता है, तो बड़े वाणिज्यिक प्रणालियों में से एक से घूम रहा है। इसकी क्षमताओं उच्च अंत डेटाबेस सिस्टम के बहुत करीब हैं और कुछ मामलों में यह उन्हें पार करती है। –

उत्तर

10

यदि यह मान एक ऑटो-वृद्धि फ़ील्ड है, तो आप डालने के बाद SELECT LAST_INSERT_ID(); चला सकते हैं, और आपको अंतिम फ़ील्ड इस फ़ील्ड में डाला जाएगा। देखें: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

+0

शानदार, का इस्तेमाल किया है नहीं MySQL हद तक कि सुविधा के बारे में पता नहीं था, चाल करना चाहिए और मैं एक GUID/अद्वितीय पहचानकर्ता आसानी से पर्याप्त – AaronM

+0

Thanx @Galz यह अद्भुत ... – Learner

+2

दुर्भाग्य से यह मदद नहीं करता है उत्पन्न कर सकते हैं बिल्कुल बैच आवेषण कर अगर, विशेष रूप से आप आगे कर इस तथ्य के बाद मिलान करने की जरूरत है और आईडी से भी अधिक की जरूरत है - एक अतिरिक्त चयन हो जाती है। –

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