可能重复:
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/