Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Können Sie mysql_insert_id vertrauen?

Ja, das können Sie.

Die Funktion gilt pro Session, gilt aber auch nur für die allerletzte Abfrage.

Das heißt, Sie werden nie einen Benutzer haben, der die last_insert_id eines anderen "verschmutzt", aber Sie können eine insert_id nicht von zwei früheren Einfügungen wiederherstellen. Wenn Sie mehrere Einfügungen hintereinander vornehmen müssen und die IDs erst später benötigen, setzen Sie sie als Variablen:

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