sql >> Base de Datos >  >> RDS >> Mysql

MySQL EN CLAVE DUPLICADA:¿último ID de inserción?

Consulte esta página:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
En la parte inferior de la página, explican cómo puede hacer que LAST_INSERT_ID sea significativo para las actualizaciones pasando una expresión a esa función de MySQL.

Del ejemplo de documentación de MySQL:

Si una tabla contiene una columna AUTO_INCREMENT e INSERT ... UPDATE inserta una fila, la función LAST_INSERT_ID() devuelve el valor AUTO_INCREMENT. Si la declaración actualiza una fila en su lugar, LAST_INSERT_ID() no es significativo. Sin embargo, puede solucionar esto utilizando LAST_INSERT_ID(expr). Supongamos que id es la columna AUTO_INCREMENT. Para que LAST_INSERT_ID() sea significativo para las actualizaciones, inserte filas de la siguiente manera:

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