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

अनावश्यक डेटा के डीबी की सफाई

तालिका स्थान पर अद्वितीय अनुक्रमणिका जोड़ें ताकि कोई डुप्लिकेट रिकॉर्ड सम्मिलित न हो

ALTER IGNORE TABLE location ADD UNIQUE KEY ix1(country, city);

यह स्वचालित रूप से तालिका से डुप्लिकेट रिकॉर्ड हटा देगा और भविष्य में सम्मिलित प्रश्नों के लिए आपको INSERT IGNORE का उपयोग करना होगा डुप्लिकेट त्रुटियों से बचने के लिए क्लॉज।

लेकिन जैसा कि @AD7six . द्वारा सुझाया गया है टिप्पणियों में, यह MySQL संस्करणों पर काम नहीं कर सकता है 5.1.41,5.5.1-m2, 6.0 :बग देखें यहां

या DELETE . का उपयोग करके डुप्लिकेट निकालने का वैकल्पिक सुरक्षित तरीका क्वेरी:

DELETE a
FROM location a
     LEFT JOIN (
                SELECT locid
                FROM location
                GROUP BY country, city
               )b
               ON a.locid = b.locid
WHERE b.locid IS NULL;

auto_increment . के मानों को फिर से स्थापित करने के लिए कॉलम locid , आप बस primary key को छोड़ सकते हैं locid . पर और इसे फिर से बनाएँ:

ALTER TABLE location DROP column locid;
ALTER TABLE location 
      ADD COLUMN locid INT unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

या locid . के मानों को फिर से बसाने का वैकल्पिक तरीका UPDATE का उपयोग कर रहे हैं क्वेरी:

SET var_locid = 0;

UPDATE location
SET locid = (@var_locid := @var_locid + 1)
ORDER BY locid ASC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक कॉलम का चयन करना जो MySQL में भी एक कीवर्ड है

  2. केस या IF ELSEIF के साथ MySQL चयन कथन? सुनिश्चित नहीं है कि परिणाम कैसे प्राप्त करें

  3. @DataJpaTest के लिए स्प्रिंग बूट 1.4.1 में एम्बेडेड H2 DB में मोड =mysql कैसे जोड़ें?

  4. दो पंक्तियों के बीच समय अंतर की गणना करें

  5. Php . में ISO8601 को दिनांक प्रारूप में कैसे बदलें