Това е това, което търсите:
LAST_INSERT_ID()
В отговор на коментара на ОП създадох следния стенд тест:
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
въведен вътре в спусъка.
Редактиране: Разбрах след цялото това време, че резултатът от SELECT LAST_INSERT_ID()
показан в моя отговор беше грешен, въпреки че заключението в края беше правилно. Актуализирах резултата, за да бъде правилната стойност.