MySQL: ALTER IGNORE TABLE ADD UNIQUE, what will be truncated? -


मेरे पास 4 कॉलम के साथ एक टेबल है: आईडी, प्रकार, स्वामी, विवरण। आईडी AUTO_INCREMENT प्राथमिक कुंजी है और अब मैं चाहता हूं:

  ALTER IGNORE TABLE `my_table` अद्वितीय जोड़ें (` प्रकार`, `स्वामी`);   

बेशक मेरे पास कुछ रिकॉर्ड हैं- प्रकार = 'ऐप्पल' और मालिक = 'ऐप्पल सीओ' तो मेरा सवाल यह है कि कौन से रिकॉर्ड उस अल्टर टेबल के बाद बने रहने के लिए विशेष रूप से होगा, जिसकी सबसे छोटी आईडी है या जो सबसे बड़ी सम्मिलित है?

पहला रिकॉर्ड रखा जाएगा, शेष को हटा दिया जाएगा:

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

मैं 'पहले' अनुमान लगा रहा हूं जिसका अर्थ है कि सबसे छोटी पहचान वाला आईडी, आईडी मानते प्राथमिक कुंजी है।

यह भी ध्यान दें:

MySQL 5.7.4 के रूप में, IGNORE वैकल्पिक तालिका के लिए खंड हटाया गया है और इसका उपयोग एक त्रुटि का उत्पादन करता है।

Comments