可能重复:
mysql getting last_insert_id() in a trigger
我让mysqlTRIGGER启动一个表(AFTER INSERT ON)。
我希望将my_table影响的行的PRIMARY_KEY存储在变量中,使用:

SET  @user_id =  LAST_INSERT_ID();

this stackoverflow link支持。好像在工作。
但是,每次它都将值存储为TRIGGER
this stackoverflow link开始,我认为这是因为0被设置为my_table
SET  @user_id =  LAST_INSERT_ID();

克服这一点的最佳做法是什么?

最佳答案

函数的作用是:只返回自动生成的id值。如果生成id本身,则最后一个insert不会返回它。
另外,触发器在另一个会话中工作。但是,last_insert_id()只适用于当前会话-其中插入了新的id,例如-

-- NULL means that ID will be generated by server
INSERT INTO table1(id) VALUES(NULL);
SELECT LAST_INSERT_ID();
> 1

关于mysql - 由于AUTO_INCREMENT,MySQL LAST_INSERT_ID()未更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13141013/

10-13 01:07