我的理解是,当你调用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语句中获取导致触发器触发的值?我还没有发现任何相关内容。
答案 0 :(得分:18)
您应该能够使用NEW.{id column name}
来引用最后一个插入ID(例如,如果调用自动增量列NEW.id
,则为id
。)