In MariaDB LAST_INSERT_ID()
ist eine eingebaute Funktion, die den ersten automatisch generierten Wert zurückgibt, der erfolgreich für ein AUTO_INCREMENT
eingefügt wurde Spalte als Ergebnis des zuletzt ausgeführten INSERT
Aussage.
Es kann auch mit einem Argument aufgerufen werden, in diesem Fall gibt es den Wert des Ausdrucks und den nächsten Aufruf von LAST_INSERT_ID()
zurück gibt denselben Wert zurück.
Syntax
Die Funktion kann auf folgende Arten aufgerufen werden:
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
Wobei expr
zurückgegeben wird, und der nächste Aufruf von LAST_INSERT_ID()
gibt denselben Wert zurück.
Beispiel
Lassen Sie uns als Beispiel eine Tabelle mit einem AUTO_INCREMENT
erstellen Spalte:
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
Die guest_id
Spalte verwendet AUTO_INCREMENT
für seinen Wert.
Fügen Sie nun einige Zeilen ein:
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
Lassen Sie uns nun LAST_INSERT_ID()
ausführen :
SELECT LAST_INSERT_ID();
Ergebnis:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
Es gibt 3
zurück .
Lassen Sie uns nun alle Zeilen in der Tabelle zurückgeben, um zu überprüfen, ob die letzte Zeile ein AUTO_INCREMENT
hat Wert von 3
eingefügt:
SELECT *
FROM guest;
Ergebnis:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
Die guest_id
Spalte geht bis 3
.
Einschließlich eines Arguments
Wie bereits erwähnt, gibt die Funktion, wenn sie mit einem Argument aufgerufen wird, den Wert des Ausdrucks und den nächsten Aufruf von LAST_INSERT_ID()
zurück gibt denselben Wert zurück.
SELECT LAST_INSERT_ID(9);
Ergebnis:
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
Rufen Sie es jetzt erneut auf, aber ohne Argument:
SELECT LAST_INSERT_ID();
Ergebnis:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
Es gibt immer noch einen Wert von 9
zurück .
Wenn wir jedoch weiterhin Werte in unseren guest
einfügen Tabelle, das AUTO_INCREMENT
wird dort weitermachen, wo es auf dieser Tabelle aufgehört hat:
INSERT INTO guest (guest_name) VALUES ('Lisa');
Lassen Sie uns nun LAST_INSERT_ID()
ausführen :
SELECT LAST_INSERT_ID();
Ergebnis:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
Es gibt 4
zurück .
Und so sieht die Tabelle jetzt aus:
SELECT *
FROM guest;
Ergebnis:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
Weitere Informationen zu dieser Funktion finden Sie in der MariaDB-Dokumentation.