mysql在触发器中获取last_insert_id()

时间:2011-06-27 21:54:40

标签: mysql triggers lastinsertid

我的理解是,当你调用last_insert_id()时,它会通过连接进行,所以你将获得在调用last_insert_id()的同一连接上插入的最后一行的id,对吧?

那么如果我在'AFTER INSERT'触发器中调用last_insert_id()会怎么样?

我想要做的基本上就是这个

DELIMITER $$
CREATE TRIGGER sometrigger
AFTER INSERT ON sometable
BEGIN
  INSERT INTO anothertable (id, lastup) VALUES (last_insert_id(), NOW());
END $$

非常重要的是'anothertable'中的id与'sometable'中的id相同 这会工作还是我应该创建一个存储过程而不是插入到两个表中?

或者可能在触发器中有一些从insert语句中获取导致触发器触发的值?我还没有发现任何相关内容。

1 个答案:

答案 0 :(得分:18)

您应该能够使用NEW.{id column name}来引用最后一个插入ID(例如,如果调用自动增量列NEW.id,则为id。)