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

INSERT INTO या UPDATE दो शर्तों के साथ

यह वही है जो insert on duplicate key update के लिए है।

इसके लिए मैनुअल पेज यहां है। ।

चाल यह है कि तालिका में एक अद्वितीय कुंजी होनी चाहिए (एक समग्र हो सकती है) ताकि clash डालने का पता लगाया जा सकता है। जैसे, उस पंक्ति पर होने वाला अद्यतन, अन्यथा एक सम्मिलित। बेशक, यह प्राथमिक कुंजी हो सकती है।

आपके मामले में, आपके पास एक समग्र कुंजी हो सकती है जैसे कि

unique key(theName,theDate)

यदि पंक्ति पहले से मौजूद है, तो clash पता चला है, और अद्यतन होता है।

यहां एक पूरा उदाहरण दिया गया है

create table myThing
(   id int auto_increment primary key,
    name int not null,
    values1 int not null,
    values2 int not null,
    dates date not null,
    unique key(name,dates) -- <---- this line here is darn important
);

insert myThing(name,values1,values2,dates) values (777,1,1,'2015-07-11') on duplicate key update values2=values2+1;
insert myThing(name,values1,values2,dates) values (778,1,1,'2015-07-11') on duplicate key update values2=values2+1;
-- do the 1st one a few more times:
insert myThing(name,values1,values2,dates) values (777,1,1,'2015-07-11') on duplicate key update values2=values2+1;
insert myThing(name,values1,values2,dates) values (777,1,1,'2015-07-11') on duplicate key update values2=values2+1;
insert myThing(name,values1,values2,dates) values (777,1,1,'2015-07-11') on duplicate key update values2=values2+1;

परिणाम दिखाएं

select * from myThing;
+----+------+---------+---------+------------+
| id | name | values1 | values2 | dates      |
+----+------+---------+---------+------------+
|  1 |  777 |       1 |       4 | 2015-07-11 |
|  2 |  778 |       1 |       1 | 2015-07-11 |
+----+------+---------+---------+------------+

जैसा कि अपेक्षित था, डुप्लीकेट कुंजी अपडेट पर सम्मिलित करें, केवल 2 पंक्तियां काम करती हैं।



  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. (mysql, php) डेटा डालने से पहले auto_increment फ़ील्ड मान कैसे प्राप्त करें?

  3. FROM_DAYS () उदाहरण – MySQL

  4. MySQL में हिस्टोग्राम कैसे बनाएं?

  5. MySQL में लोड डेटा इनफाइल के लिए एक्सेस अस्वीकृत