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

जहां मौजूद नहीं है वहां MySQL डालें

आप या तो INSERT IGNORE . का उपयोग कर सकते हैं या REPLACE या INSERT ... ON DUPLICATE KEY UPDATE ...

प्रत्येक के लिए आपको product_id, ip_address

. पर एक अद्वितीय बाधा की आवश्यकता होती है

इग्नोर डालें

INSERT IGNORE INTO products VALUES (null, 111, '8.8.8.8')

अगर प्रविष्टि पहले से मौजूद है, तो सम्मिलन को अनदेखा कर देगा।

बदलें

REPLACE INTO products VALUES (null, 111, '8.8.8.8')

एक डिलीट प्लस एक नया इंसर्ट करेगा।

सम्मिलित करें ... अद्यतन करें

INSERT INTO products VALUES (null, 111, '8.8.8.8')
ON DUPLICATE KEY UPDATE products SET last_modified = NOW()

सम्मिलित करने का प्रयास करेंगे और यदि वह विफल रहता है तो मौजूदा रिकॉर्ड को अपडेट करें।

आपके मामले में मुझे लगता है कि आपको INSERT IGNORE . के साथ ठीक होना चाहिए , हालांकि यदि आप अन्य मानों को बदलना चाहते हैं यदि रिकॉर्ड पहले से मौजूद है, INSERT ... UPDATE ... अच्छा काम करना चाहिए।

मैं आमतौर पर REPLACE . का उपयोग करने की अनुशंसा नहीं करता जब तक आप वास्तव में DELETE FROM table WHERE ... . चाहते हैं प्लस INSERT INTO TABLE ...

अपडेट करें

इसके लिए (इस उदाहरण के लिए) संयोजन उत्पाद, ip_address के लिए एक अद्वितीय अनुक्रमणिका की आवश्यकता है। आप इसे इसके साथ प्राप्त कर सकते हैं

ALTER TABLE products
ADD UNIQUE INDEX `UIDX_PRODUCT__IP_ADRESS`(product, ipaddress);


  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. php/mysql खाता सक्रियण

  3. Gentoo पर MySQL रिलेशनल डेटाबेस का उपयोग करना

  4. सही प्रकार के साथ mysql परिणाम को json में बदलें

  5. वर्तमान आइटम आईडी के आसपास N पिछला और M अगला आइटम चुनें