sql >> Databasteknik >  >> RDS >> Mysql

MySQL PÅ DUBLIKATNYCKEL - senaste infognings-id?

Kolla in den här sidan:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Längst ner på sidan förklarar de hur du kan göra LAST_INSERT_ID meningsfullt för uppdateringar genom att skicka ett uttryck till den MySQL-funktionen.

Från MySQL-dokumentationsexemplet:

Om en tabell innehåller en kolumn AUTO_INCREMENT och INSERT ... UPDATE infogar en rad, returnerar funktionen LAST_INSERT_ID() värdet AUTO_INCREMENT. Om satsen uppdaterar en rad istället är LAST_INSERT_ID() inte meningsfull. Du kan dock komma runt detta genom att använda LAST_INSERT_ID(expr). Anta att id är kolumnen AUTO_INCREMENT. För att göra LAST_INSERT_ID() meningsfull för uppdateringar, infoga rader enligt följande:

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


  1. 2 funktioner som returnerar månaden från ett datum i Oracle

  2. Hur UUID_SHORT() fungerar i MariaDB

  3. JSON_SET() vs JSON_INSERT() vs JSON_REPLACE() i MySQL:Vad är skillnaden?

  4. Hur avrundar man ett genomsnitt till 2 decimaler i PostgreSQL?