### 25.2.4 存储过程、函数、触发器和 LAST\_插入\_ID（）

[](<>)[](<>)[](<>)[](<>)

在存储例程（过程或函数）或触发器的主体内，[`LAST_INSERT_ID()`](information-functions.html#function_last-insert-id)更改方式与在这些对象的主体之外执行的语句相同（请参阅[第 12.16 节，“信息功能”](information-functions.html)）。存储的例程或触发器对值的影响[`LAST_INSERT_ID()`](information-functions.html#function_last-insert-id)以下语句所见取决于例程的类型：

-   如果存储过程执行更改值的语句[`LAST_INSERT_ID()`](information-functions.html#function_last-insert-id)，更改后的值会被过程调用之后的语句看到。

-   对于更改值的存储函数和触发器，该值会在函数或触发器结束时恢复，因此以下语句看不到更改的值。
