vous voulez ajouter Pipo le rottweiller dans votre base. Pour ce faire, vous devez insérer une nouvelle race (rottweiller), et un
nouvel animal (Pipo) pour lequel vous avez besoin de l'id de la nouvelle race.
Plutôt que de faire un SELECT sur la table Race une fois la nouvelle race insérée, il est possible d'utiliser
LAST_INSERT_ID().
Cette fonction renvoie le dernier id créé par auto-incrémentation, pour la connexion utilisée (donc si quelqu'un se connecte au
même serveur, avec un autre client, il n'influera pas sur le LAST_INSERT_ID() que vous recevez).
Code : SQL
INSERT INTO Race (nom, espece_id, description, prix)
VALUES ('Rottweiller', 1, 'Chien d''apparence solide, bien musclé, à
la robe noire avec des taches feu bien délimitées.', 600.00);
INSERT INTO Animal (sexe, date_naissance, nom, espece_id, race_id)
VALUES ('M', '2010-11-05', 'Pipo', 1, LAST_INSERT_ID()); -LAST_INSERT_ID() renverra ici l'id de la race Rottweiller
Nombre de lignes renvoyées par la requête
La fonction FOUND_ROWS() vous permet d'afficher le nombre de lignes que votre dernière requête a ramenées.
Code : SQL
SELECT id, nom, espece_id, prix
FROM Race;
SELECT FOUND_ROWS();
id
nom
espece_id prix
1 Berger allemand
1
485.00
2 Berger blanc suisse 1
935.00
3 Singapura
2
985.00
4 Bleu russe
2
835.00
5 Maine coon
2
735.00
7 Sphynx
2
1235.00
8 Nebelung
2
985.00
9 Rottweiller
1
600.00
FOUND_ROWS()
8
Jusque-là, rien de bien extraordinaire. Cependant, utilisée avec LIMIT, FOUND_ROWS() peut avoir un comportement très
intéressant. En effet, moyennant l'ajout d'une option dans la requête SELECT d'origine, FOUND_ROWS() nous donnera le
nombre de lignes que la requête aurait ramenées en l'absence de LIMIT. L'option à ajouter dans le SELECT est
SQL_CALC_FOUND_ROWS, et se place juste après le mot-clé SELECT.
Code : SQL
SELECT id, nom, espece_id, prix
-- Sans option
FROM Race
LIMIT 3;
Partie 3 : Fonctions : nombres, chaînes et agrégats
157/414
www.openclassrooms.com
Précédent

- 157/413

Suivant