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

मैसकल - यूनिक इंडेक्स के साथ संयुक्त कॉलम की डुप्लिकेट प्रविष्टियों को रोकना

आपका प्रश्न:"क्या मैं इसे अद्वितीय अनुक्रमणिका का उपयोग करके mysql क्वेरी के साथ प्राप्त कर सकता हूं? "

उत्तर 100% हाँ है।

अनुक्रमणिका बनाने के दो तरीके हैं:

1. CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);

2. ALTER TABLE table_name 
ADD UNIQUE index_name (column1, column2, ...);

हालांकि, यह केवल तभी काम करेगा जब आपकी तालिका में मौजूदा डुप्लिकेट डेटा न हो। अन्यथा आपको इस तरह एक त्रुटि संदेश प्राप्त होगा:

Query: CREATE UNIQUE INDEX index_name ON targets (a, b)

Error Code: 1062
Duplicate entry 'photo-url1' for key 'index_name'

इसलिए, आपको चाहिए:

  1. अपने targets . के समान एक नई खाली तालिका बनाएं टेबल.
  2. अद्वितीय अनुक्रमणिका बनाएं।
  3. INSERT IGNORE पुरानी तालिका से डेटा।
  4. नाम बदलें targets करने के लिए targets_old और targets_new targets . के लिए ।

उदाहरण:

CREATE TABLE targets_new LIKE targets;

CREATE UNIQUE INDEX index_name
ON targets_new (a, b);

INSERT IGNORE INTO targets_new SELECT * FROM targets;

RENAME TABLE targets TO targets_old;
RENAME TABLE targets_new TO targets;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विदेशी कुंजी बाधा के साथ तालिका बनाना विफल हो जाता है गलत तरीके से बनाया गया है

  2. mysql को 5.5 से 5.6 . में अपग्रेड करने के बाद धीमी क्वेरी

  3. वेबसाइट डेटाबेस को कैसे अनुकूलित करें

  4. MYSQL में DBCC INPUTBUFFER(@@SPID)(जो वर्तमान कनेक्शन ओटीआर निर्दिष्ट कनेक्शन के लिए sql स्टेटमेंट देता है) का समकक्ष स्टेटमेंट क्या है?

  5. एकाधिक कॉलम पर इंडेक्स कैसे बनाएं