我有MySQL TRIGGER
解雇AFTER INSERT ON
一个表(my_table
)。
我希望使用以下内容将PRIMARY_KEY
影响的行的TRIGGER
存储在变量中:
SET @user_id = LAST_INSERT_ID();
由this stackoverflow link支持。似乎工作正常。
但是,每次将值存储为0
。
从this stackoverflow link开始,我认为这是因为my_table
设置为AUTO_INCREMENT
。
SET @user_id = LAST_INSERT_ID();
克服这个问题的最佳做法是什么?
答案 0 :(得分:2)
LAST_INSERT_ID()函数仅返回自动生成的ID值。如果您自己生成了ID,那么LAST_INSERT_ID()将不会返回它。
此外,触发器在另一个会话中工作。但是LAST_INSERT_ID()仅适用于当前会话 - 其中插入了新ID,例如 -
-- NULL means that ID will be generated by server
INSERT INTO table1(id) VALUES(NULL);
SELECT LAST_INSERT_ID();
> 1