MySQL 8.3 Release Notes
Within the body of a stored routine (procedure or function) or a trigger, the value of LAST_INSERT_ID()
changes the same way as for statements executed outside the body of these kinds of objects (see Section 14.15, “Information Functions”). The effect of a stored routine or trigger upon the value of LAST_INSERT_ID()
that is seen by following statements depends on the kind of routine:
-
If a stored procedure executes statements that change the value of
LAST_INSERT_ID()
, the changed value is seen by statements that follow the procedure call. -
For stored functions and triggers that change the value, the value is restored when the function or trigger ends, so following statements do not see a changed value.