13

我的理解是,当您调用 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 相同,这一点非常重要,这是否可行,或者我应该创建一个存储过程而不是插入两个表中?

或者可能有一些,在触发器中,从导致触发器触发的插入语句中获取值?我还没有找到任何相关的信息。

4

1 回答 1

19

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

于 2011-06-27T22:12:24.573 回答