Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Você pode confiar no mysql_insert_id?


Sim você pode.

A função é por sessão, mas também é válida apenas para a última consulta.

Ou seja, você nunca terá um usuário "poluindo" o last_insert_id de outro, mas não poderá recuperar um insert_id de duas inserções anteriores. Quando você precisar fazer várias inserções seguidas e não precisar dos ids até mais tarde, defina-os como variáveis:
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);