sql >> Database >  >> RDS >> Mysql

Kun je mysql_insert_id vertrouwen?

Ja, dat kan.

De functie is per sessie, maar is ook alleen geldig voor de allerlaatste query.

Dat wil zeggen, je zult nooit een gebruiker hebben die de laatste_insert_id van een andere "vervuilt", maar je kunt een insert_id van twee inserties geleden niet herstellen. Als u meerdere invoegingen achter elkaar moet doen en de id's pas later nodig hebt, stelt u ze in als variabelen:

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



  1. bestellen op .... nummers? Help me ip-adressen te sorteren

  2. regexp_replace:voeg een spatie in een string in als deze nog niet aanwezig is

  3. PIVOT gebruiken in SQL Server 2008

  4. SELECT max(x) retourneert null; hoe kan ik ervoor zorgen dat het 0 teruggeeft?