2012-11-26 16 views
6

मूल रूप से मैं एक मेज है कि संस्करणों उत्पादों,डालने पर ऑटोमक्रिकमेंट मान को दूसरे कॉलम पर कॉपी करें?

तो यह ब्याज की दो कॉलम है, id | product_id

id एक autoincrement स्तंभ है,
product_id सिर्फ एक int

है जब एक उत्पाद पहले है product_idid, से आता है जब उत्पाद संपादित किया जाता है हम पंक्ति को डुप्लिकेट करते हैं, इसलिए product_id समान है, लेकिन आईडी भिन्न है ईएनटी। इसलिए जब हम पहला उत्पाद हम दो प्रश्नों करते हैं,

डालने, तो update table whatever set product_id = id where id = {the insert id}

यह काम करता है, लेकिन अगर वहाँ एक क्वेरी में यह करने के लिए एक रास्ता है मैं सोच रहा हूँ बनाने के?

ध्यान दें कि हमारे पास केवल सम्मिलित करने, अपडेट करने, हटाने के लिए उपयोग है। कोई ट्रिगर या संग्रहीत प्रक्रियाओं।

update table whatever set 
product_id = id 
where id = last_insert_id() 

उत्तर

2

LAST_INSERT_ID() फ़ंक्शन का उपयोग

insert into whatever 
set product_id = last_insert_id() + 1; 
+2

अनिवार्य है कि हम क्या कर रहे हैं, लेकिन अगर वहाँ के दौरान दो मूल्यों से जोड़ने के लिए एक तरीका था मैं सोच रहा था सम्मिलित करें? – Hailwood

+0

आप अगले वृद्धि मूल्य को खोजने के लिए एक कैटलॉग तालिका से पूछ सकते हैं। मैं भूल जाता हूं कि यह कौन सा है – Bohemian

+3

यह – inemanja

0

यह एक क्वेरी है:

+1

से पूछे जाने वाले प्रश्न का उत्तर नहीं है, यदि कोई पंक्ति नहीं है जहां आप पंक्तियों को सम्मिलित कर रहे हैं तो यह काम करेगा। –