这是您要寻找的:
LAST_INSERT_ID()
为了回应OP的评论,我创建了以下基准测试:
CREATE TABLE Foo( FooId INT AUTO_INCREMENT PRIMARY KEY);CREATE TABLE Bar( BarId INT AUTO_INCREMENT PRIMARY KEY);INSERT INTO Bar () VALUES ();INSERT INTO Bar () VALUES ();INSERT INTO Bar () VALUES ();INSERT INTO Bar () VALUES ();INSERT INTO Bar () VALUES ();CREATE TRIGGER FooTrigger AFTER INSERT ON Foo FOR EACH ROW BEGIN INSERT INTO Bar () VALUES (); END;INSERT INTO Foo () VALUES (); SELECT LAST_INSERT_ID();
返回:
+------------------+| LAST_INSERT_ID() |+------------------+| 1 |+------------------+
因此,它使用
LAST_INSERT_ID()原始表的,而不
INSERT使用触发器内部的表。
编辑: 经过所有这些时间,我意识到
SELECTLAST_INSERT_ID()答案中显示的结果是错误的,尽管最后的结论是正确的。我已将结果更新为正确的值。



