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

पायथन mysql डालने से पहले डुप्लिकेट के लिए जाँच करें

SELECT . द्वारा आप या तो पहले पता लगा सकते हैं कि यह वहां है या नहीं url . द्वारा आईएनजी , या आप url . बना सकते हैं क्षेत्र अद्वितीय:

CREATE TABLE IF NOT EXISTS kompas_url
    ...
    url VARCHAR(1000) UNIQUE,
    ...
)

यह MySQL को डुप्लिकेट पंक्ति डालने से रोकेगा, लेकिन जब आप कोशिश करेंगे और सम्मिलित करेंगे तो यह एक त्रुटि की भी रिपोर्ट करेगा। यह अच्छा नहीं है—हालाँकि हम त्रुटि को संभाल सकते हैं, यह दूसरों को छिपा सकता है। इससे निजात पाने के लिए, हम ON DUPLICATE KEY UPDATE . का उपयोग करते हैं वाक्य रचना:

INSERT INTO kompas_url (url, created_date, modified_date)
VALUES ('http://example.com', NOW(), NOW())
ON DUPLICATE KEY UPDATE modified_date = NOW()

यह हमें एक UPDATE प्रदान करने की अनुमति देता है एक अद्वितीय फ़ील्ड में डुप्लिकेट मान के मामले में कथन (इसमें आपकी प्राथमिक कुंजी शामिल हो सकती है)। इस मामले में, हम शायद modified_date . को अपडेट करना चाहते हैं वर्तमान तिथि के साथ फ़ील्ड।

संपादित करें: जैसा कि ~unutbu द्वारा सुझाया गया है , यदि आप डुप्लीकेट पर कुछ भी बदलना नहीं चाहते हैं, तो आप INSERT IGNORE का उपयोग कर सकते हैं वाक्य - विन्यास। यह बस इस प्रकार काम करता है:

INSERT IGNORE INTO kompas_url (url, created_date, modified_date)
VALUES ('http://example.com', NOW(), NOW())

यह केवल कुछ प्रकार की त्रुटियों को चेतावनियों में बदल देता है - सबसे उपयोगी रूप से, त्रुटि जो बताती है कि एक डुप्लिकेट अद्वितीय प्रविष्टि होगी। यदि आप कीवर्ड IGNORE . डालते हैं आपके कथन में, आपको कोई त्रुटि नहीं मिलेगी—क्वेरी बस छोड़ दी जाएगी। जटिल प्रश्नों में, यह अन्य त्रुटियों को भी छिपा सकता है जो हालांकि उपयोगी हो सकती हैं, इसलिए यदि आप इसका उपयोग करना चाहते हैं तो यह सुनिश्चित करना सबसे अच्छा है कि आपका कोड सही है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सिम्फनी + सिद्धांत:बूलियन फ़ील्ड के डिफ़ॉल्ट मान के लिए सही YAML सिंटैक्स

  2. MySQL वर्कबेंच को मेरे रिमोट सर्वर से लिंक करना

  3. सिद्धांत php . में मुद्दे से निपटने की तारीखें

  4. गलत mysql कॉन्फ़िगरेशन के साथ रूट पासवर्ड रीसेट करें

  5. नेस्टेड क्लासेस - CustomRowMapper !! अब कोई समस्या नहीं !! - भाग ---- पहला