Dette er det, du leder efter:
LAST_INSERT_ID()
Som svar på OP's kommentar oprettede jeg følgende bænktest:
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();
Dette returnerer:
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 1 |
+------------------+
Så den bruger LAST_INSERT_ID()
af den originale tabel og ikke tabellen INSERT
ind i aftrækkeren.
Rediger: Jeg indså efter al denne tid, at resultatet af SELECT LAST_INSERT_ID()
vist i mit svar var forkert, selvom konklusionen i slutningen var korrekt. Jeg har opdateret resultatet til den korrekte værdi.