MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB LAST_INSERT_ID() erklärt

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.