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

एमएसक्यूएल:केवल नई प्रविष्टि अधिक होने पर ही प्रविष्टि को कैसे अधिलेखित करें? अन्यथा नई प्रविष्टि बनाएं

मैं डुप्लिकेट कुंजी अपडेट पर insert .. on duplicate key update ... बयान। कुछ इस तरह:

insert into highscore set
    name = :name,
    score = :new_score
on duplicate key update
    score = greatest(score, :new_score)

name कॉलम को unique . के रूप में अनुक्रमित किया जाना चाहिए ।

टेस्ट स्क्रिप्ट:

create table player (
    name varchar(32) primary key,
    score int not null default 0
);

-- create new players
insert into player set name = 'foo', score = 100
    on duplicate key update score = greatest(score, 100);
insert into player set name = 'bar', score = 100
    on duplicate key update score = greatest(score, 100);
insert into player set name = 'baz', score = 100
    on duplicate key update score = greatest(score, 100);

-- update score of existing player
insert into player set name = 'bar', score = 200
    on duplicate key update score = greatest(score, 200);

select * from player . का आउटपुट :

+------+-------+
| name | score |
+------+-------+
| bar  |   200 |
| baz  |   100 |
| foo  |   100 |
+------+-------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रिमोट सर्वर से Amazon EC2 पर mysql से कनेक्ट करें

  2. क्या MYSQL पर किसी टेबल पर डिलीट को डिसेबल करना संभव है?

  3. MySQL टाइमज़ोन परिवर्तन?

  4. मैं कैसे तय करूं कि कब दाएं जॉइन/लेफ्ट जॉइन या इनर जॉइन का उपयोग करना है या यह कैसे निर्धारित करना है कि कौन सी टेबल किस तरफ है?

  5. MySQL डेटाबेस के लिए PHP खोज स्क्रिप्ट, केवल 3 अक्षर काम कर रहे हैं