Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pouvez-vous faire confiance à mysql_insert_id ?

Oui, vous pouvez.

La fonction est par session, mais elle n'est également valable que pour la toute dernière requête.

Autrement dit, vous n'aurez jamais un utilisateur "polluant" le last_insert_id d'un autre, mais vous ne pouvez pas récupérer un insert_id à partir de deux insertions précédentes. Lorsque vous devez effectuer plusieurs insertions à la suite et que vous n'avez besoin des identifiants que plus tard, définissez-les comme 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);