Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अद्वितीय अनुक्रमणिका के साथ डुप्लिकेट निकालना

यदि आपकी तालिका में डुप्लीकेट हैं और आप उपयोग करते हैं

ALTER TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);

त्रुटि 1062 (डुप्लिकेट कुंजी) के साथ क्वेरी विफल हो जाएगी।

लेकिन अगर आप IGNORE का इस्तेमाल करते हैं

-- (only works before MySQL 5.7.4)
ALTER IGNORE TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);

डुप्लिकेट हटा दिए जाएंगे। लेकिन दस्तावेज़ीकरण यह निर्दिष्ट नहीं करता है कि कौन सी पंक्ति रखी जाएगी:

(ALTER TABLE Syntax )

यदि आपका संस्करण 5.7.4 या अधिक है - तो आप यह कर सकते हैं:

  • डेटा को एक अस्थायी तालिका में कॉपी करें (यह तकनीकी रूप से अस्थायी होने की आवश्यकता नहीं है)।
  • मूल तालिका को छोटा करें।
  • अद्वितीय सूचकांक बनाएं।
  • और डेटा को वापस कॉपी करें INSERT IGNORE . के साथ (जो अभी भी उपलब्ध है)।
CREATE TABLE tmp_data SELECT * FROM mytable;
TRUNCATE TABLE mytable;
ALTER TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);
INSERT IGNORE INTO mytable SELECT * from tmp_data;
DROP TABLE tmp_data;

(INSERT Syntax)

यह भी देखें:INSERT ... सिंटेक्स चुनें और इग्नोर कीवर्ड की तुलना और सख्त SQL मोड



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी वेब ऐप में JDBC के माध्यम से डेटाबेस से कनेक्ट करते समय Class.forName की आवश्यकता कब होती है?

  2. MySQL डेटाबेस में फाइल कैसे डालें?

  3. php . में mysql की तालिका से गिनती (*) का चयन करें

  4. mysql संग्रहीत कार्यविधि:एक सीमा विवरण में घोषित vars का उपयोग करके एक त्रुटि देता है

  5. एक सरणी का उपयोग कर MySQL क्वेरी