Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zu viele automatische Inkremente bei ON DUPLICATE KEY UPDATE

Ich glaube nicht, dass es eine Möglichkeit gibt, dieses Verhalten von INSERT ... ON DUPLICTE KEY UPDATE zu umgehen .

Sie können jedoch zwei Anweisungen setzen, eine UPDATE und ein INSERT , in einer Transaktion :

START TRANSACTION ;

UPDATE pages
SET etc = 'randomness'
WHERE name = 'bob' ;

INSERT INTO pages (name, etc)
SELECT 
      'bob' AS name
    , 'randomness' AS etc 
FROM dual 
WHERE NOT EXISTS
      ( SELECT *
        FROM pages p
        WHERE p.name = 'bob'
      ) ;

COMMIT ;