Dans MariaDB, LAST_INSERT_ID()
est une fonction intégrée qui renvoie la première valeur générée automatiquement insérée avec succès pour un AUTO_INCREMENT
colonne à la suite du dernier INSERT
exécuté déclaration.
Il peut également être appelé avec un argument, auquel cas il renvoie la valeur de l'expression et le prochain appel à LAST_INSERT_ID()
renverra la même valeur.
Syntaxe
La fonction peut être appelée des manières suivantes :
LAST_INSERT_ID()
LAST_INSERT_ID(expr)
Où expr
est renvoyé, et le prochain appel à LAST_INSERT_ID()
renverra la même valeur.
Exemple
Par exemple, créons une table avec un AUTO_INCREMENT
colonne :
CREATE TABLE guest (
guest_id INT NOT NULL AUTO_INCREMENT,
guest_name VARCHAR(255) NOT NULL,
PRIMARY KEY (guest_id)
);
Le guest_id
la colonne utilise AUTO_INCREMENT
pour sa valeur.
Insérez maintenant quelques lignes :
INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');
Exécutons maintenant LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID();
Résultat :
+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+
Il renvoie 3
.
Maintenant, renvoyons toutes les lignes du tableau pour vérifier que la dernière ligne a un AUTO_INCREMENT
valeur de 3
inséré :
SELECT *
FROM guest;
Résultat :
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | +----------+------------+
Le guest_id
la colonne monte jusqu'à 3
.
Inclure un argument
Comme mentionné, si elle est appelée avec un argument, la fonction renvoie la valeur de l'expression et le prochain appel à LAST_INSERT_ID()
renverra la même valeur.
SELECT LAST_INSERT_ID(9);
Résultat :
+-------------------+ | LAST_INSERT_ID(9) | +-------------------+ | 9 | +-------------------+
Maintenant rappelez-le, mais sans argument :
SELECT LAST_INSERT_ID();
Résultat :
+------------------+ | LAST_INSERT_ID() | +------------------+ | 9 | +------------------+
Il renvoie toujours une valeur de 9
.
Cependant, si nous continuons à insérer des valeurs dans notre guest
table, le AUTO_INCREMENT
continuera là où il s'est arrêté sur cette table :
INSERT INTO guest (guest_name) VALUES ('Lisa');
Exécutons maintenant LAST_INSERT_ID()
:
SELECT LAST_INSERT_ID();
Résultat :
+------------------+ | LAST_INSERT_ID() | +------------------+ | 4 | +------------------+
Il renvoie 4
.
Et voici à quoi ressemble le tableau maintenant :
SELECT *
FROM guest;
Résultat :
+----------+------------+ | guest_id | guest_name | +----------+------------+ | 1 | Homer | | 2 | Bart | | 3 | Marge | | 4 | Lisa | +----------+------------+
Pour plus d'informations sur cette fonction, consultez la documentation de MariaDB.