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

Puoi fidarti di mysql_insert_id?

Sì, puoi.

La funzione è per sessione, ma è valida anche solo per l'ultima query.

Cioè, non avrai mai un utente che "inquina" il last_insert_id di un altro, ma non puoi recuperare un insert_id da due inserti fa. Quando devi fare più inserimenti di seguito e non hai bisogno degli ID fino a un secondo momento, impostali come variabili:

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);