sql >> Database >  >> RDS >> Mysql

invoegen bij dubbele sleutelupdate

Ik geloof dat het antwoord hierop wordt behandeld in de MySQL documenten :

Als een tabel een AUTO_INCREMENT . bevat kolom en INSERT ... UPDATE voegt een rij in, de LAST_INSERT_ID() functie retourneert de AUTO_INCREMENT waarde. Als de instructie in plaats daarvan een rij bijwerkt, LAST_INSERT_ID() is niet zinvol. U kunt dit echter omzeilen door LAST_INSERT_ID(expr) . te gebruiken . Stel dat id de AUTO_INCREMENT . is kolom. Om LAST_INSERT_ID() . te maken zinvol voor updates, voeg rijen als volgt in:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;


  1. Hernoem tabellen veilig met seriële primaire-sleutelkolommen

  2. Oracle-procedure of taak om automatisch gegevens van het ene schema naar het andere te kopiëren op basis van tijdlijn

  3. Hoe $_GET te gebruiken om meerdere parameters met dezelfde naam in PHP te krijgen

  4. MySQL / MariaDB unieke BLOB van vaste lengte