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

MySQL डुप्लिकेट इंसर्ट पर ऑटो इंक्रीमेंट रोकें

आप अपने INSERT को कुछ इस तरह संशोधित कर सकते हैं:

INSERT INTO tablename (tag)
SELECT $tag
FROM tablename
WHERE NOT EXISTS(
    SELECT tag
    FROM tablename
    WHERE tag = $tag
)
LIMIT 1

जहां $tag वह टैग है (ठीक से उद्धृत या पाठ्यक्रम के प्लेसहोल्डर के रूप में) जिसे आप जोड़ना चाहते हैं यदि वह पहले से मौजूद नहीं है। यदि टैग पहले से मौजूद है तो यह दृष्टिकोण एक 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. एसक्यूएल:2 अलग auto_increment के साथ एक संबंध तालिका बनाना

  2. इकाई फ्रेमवर्क 4 और कोड-प्रथम विकास CTP के साथ MySql का उपयोग करना

  3. वर्ष () उदाहरण – MySQL

  4. MySQL में क्रॉस/आउटर अप्लाई

  5. MySQL किसी फ़ील्ड में कुछ टेक्स्ट खोजें और बदलें