In MariaDB, LAST_INSERT_ID()
is een ingebouwde functie die de eerste automatisch gegenereerde waarde retourneert die met succes is ingevoegd voor een AUTO_INCREMENT
kolom als resultaat van de meest recent uitgevoerde INSERT
verklaring.
Het kan ook worden aangeroepen met een argument, in welk geval het de waarde van de uitdrukking retourneert en de volgende aanroep naar LAST_INSERT_ID()
zal dezelfde waarde retourneren.
Syntaxis
De functie kan op de volgende manieren worden aangeroepen:
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
Waar expr
wordt geretourneerd, en de volgende aanroep van LAST_INSERT_ID()
zal dezelfde waarde retourneren.
Voorbeeld
Laten we als voorbeeld een tabel maken met een AUTO_INCREMENT
kolom:
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
De guest_id
kolom gebruikt AUTO_INCREMENT
voor zijn waarde.
Voeg nu enkele rijen in:
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
Laten we nu LAST_INSERT_ID()
. uitvoeren :
SELECT LAST_INSERT_ID();
Resultaat:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
Het retourneert 3
.
Laten we nu alle rijen in de tabel retourneren om te controleren of de laatste rij een AUTO_INCREMENT
heeft waarde van 3
ingevoegd:
SELECT *
FROM guest;
Resultaat:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
De guest_id
kolom gaat tot 3
.
Inclusief een argument
Zoals vermeld, retourneert de functie, indien aangeroepen met een argument, de waarde van de uitdrukking en de volgende aanroep naar LAST_INSERT_ID()
zal dezelfde waarde retourneren.
SELECT LAST_INSERT_ID(9);
Resultaat:
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
Noem het nu opnieuw, maar zonder argument:
SELECT LAST_INSERT_ID();
Resultaat:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
Het retourneert nog steeds een waarde van 9
.
Als we echter doorgaan met het invoegen van waarden in onze guest
tabel, de AUTO_INCREMENT
gaat verder waar het gebleven was op die tafel:
INSERT INTO guest (guest_name) VALUES ('Lisa');
Laten we nu LAST_INSERT_ID()
. uitvoeren :
SELECT LAST_INSERT_ID();
Resultaat:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
Het retourneert 4
.
En zo ziet de tabel er nu uit:
SELECT *
FROM guest;
Resultaat:
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
Zie de MariaDB-documentatie voor meer informatie over deze functie.