Sunday 15 February 2015

sql - Oracle: ON DUPLICATE KEY UPDATE -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 11 जवाब

    मैं लागू करने की कोशिश कर रहा हूँ एक समाधान जिसे मैंने एक (बेहतर-सरल-में-एक-सिंटेक्स-अर्थ) क्वेरी के साथ कई रिकॉर्डों को अपडेट करने के लिए Michiel de Mare से मिला। उदाहरण कोड जिसे मैं सीखने की कोशिश कर रहा हूं, इस तरह दिखता है:

      तालिका (आईडी, कॉल 1, कॉल 2) मूल्यों (INR1,1), (2,2,3) INSERT , (3 9 .3), (4,10,12) डुप्लिकेट की कुंजी अद्यतन कॉल 1 = मूल्य (कॉल 1), कॉल 2 = मूल्य (कॉल 2);   

    मैं ओरेकल का उपयोग कर रहा हूँ (और अभी तक एसक्यूएल क्वेरीज़ में वाकिफ नहीं हूं)।

    कुछ डायनामिक सामग्री के आधार पर, मैंने अपनी क्वेरी को उपरोक्त समान । यह कितने अभिलेखों को अद्यतन कर रहा है, इसके आधार पर यह लंबाई में भिन्न हो सकती है, लेकिन यह मेरे द्वारा उत्पन्न की जाने वाली क्वेरी का एक उदाहरण है:

      my_table (question_id, ug) VALUES में INSERT (30,0)   

    उपरोक्त क्वेरी में यह त्रुटि हो रही है:

      मूल संदेश: ORA- 00 933: SQL कमांड ठीक से समाप्त नहीं हुआ   

    मैं एक कंटेंट मैनेजमेंट सिस्टम से काम कर रहा हूं जिसमें फ़ंक्शन कॉल है जो क्वेरी चलाता है; इस ढांचे के भीतर मुझे नहीं लगता कि यह उचित है, लेकिन मुझे ''; ' प्रश्नों के अंत में, हालांकि, मैंने इसे सेमीकोलन के बिना और बिना कोशिश की।

    ओरेकल नहीं है डुप्लिकेट कुंजी अपडेट पर है का उपयोग करें MERGE इसके बजाय:

      my_table trg का उपयोग करने में मिर्ज करें (चयन 30 के रूप में प्रश्न_आईडी, 0 और यूग के रूप में डुएल यूनियन सभी का चयन करें 31,1 से दोहरे) src पर (src.question_id = trg.question_id) जब उसमें शामिल नहीं किया गया तो प्रश्न (प्रश्न_आर्ड, यूग) मूल्य (src.question_id, src.ug) जब अद्यतन की गई थी तो trg.ug = src अद्यतन करें। ओग    

No comments:

Post a Comment