Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL SU CHIAVE DUPLICATA - ID dell'ultimo inserto?

Dai un'occhiata a questa pagina:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
In fondo alla pagina spiegano come rendere LAST_INSERT_ID significativo per gli aggiornamenti passando un'espressione a quella funzione MySQL.

Dall'esempio di documentazione MySQL:

Se una tabella contiene una colonna AUTO_INCREMENT e INSERT ... UPDATE inserisce una riga, la funzione LAST_INSERT_ID() restituisce il valore AUTO_INCREMENT. Se invece l'istruzione aggiorna una riga, LAST_INSERT_ID() non è significativo. Tuttavia, puoi aggirare questo problema utilizzando LAST_INSERT_ID(expr). Supponiamo che id sia la colonna AUTO_INCREMENT. Per rendere LAST_INSERT_ID() significativo per gli aggiornamenti, inserisci le righe come segue:

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