sql >> Database >  >> RDS >> Mysql

Te veel automatische verhogingen met ON DUPLICATE KEY UPDATE

Ik denk niet dat er een manier is om dit gedrag van INSERT ... ON DUPLICTE KEY UPDATE te omzeilen .

U kunt echter twee verklaringen plaatsen, een UPDATE en een INSERT , in één transactie :

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 ;


  1. Voorwaarde uit twee kolommen combineren mysql

  2. Hoe de MySQL-databasegrootte in Linux te controleren

  3. Natuurlijke sortering die grote getallen ondersteunt

  4. SQL Alle records ouder dan 30 dagen ophalen