MySQL 8.4 Reference Manual  /  ...  /  Stored Procedures, Functions, Triggers, and LAST_INSERT_ID()

27.2.4 存储过程、函数、触发器和 LAST_INSERT_ID()()

在存储例程(过程或函数)或触发器的主体中,LAST_INSERT_ID() 的值将像在这些对象主体外执行的语句一样变化(见第14.15节,“信息函数”)。存储例程或触发器对LAST_INSERT_ID() 的值的影响,取决于该例程的类型:

  • 如果存储过程执行改变LAST_INSERT_ID() 的语句,那么语句的变化将被后续语句看到。

  • 对于存储函数和触发器,如果它们改变了LAST_INSERT_ID() 的值,那么在函数或触发器结束时,该值将被恢复,因此后续语句将不见变化。