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

¿Puede confiar en mysql_insert_id?

Sí, puedes.

La función es por sesión, pero también solo es válida para la última consulta.

Es decir, nunca tendrá un usuario "contaminando" el last_insert_id de otro, pero no puede recuperar un insert_id de hace dos inserciones. Cuando necesite hacer varias inserciones seguidas y no necesite los ID hasta más tarde, configúrelos como variables:

INSERT INTO ...
SET @foo_id = LAST_INSERT_ID();
INSERT INTO ...
SET @bar_id = LAST_INSERT_ID();
INSERT INTO some_join_table VALUES (@foo_id, @bar_id);