23.2.4 存储过程,函数,触发器和 LAST_INSERT_ID()

在存储的例程(过程或函数)或触发器的主体内,LAST_INSERT_ID()的值的更改方式与在此类对象的主体外部执行的语句的更改方式相同(请参见第 12.15 节“信息功能”)。以下语句所看到的存储例程或触发器对LAST_INSERT_ID()值的影响取决于例程的类型:

  • 如果存储过程执行的语句更改了LAST_INSERT_ID()的值,则该过程调用后的语句将看到更改的值。

  • 对于存储的函数和更改该值的触发器,该函数或触发器结束时将恢复该值,因此以下语句看不到更改后的值。