| 3.6 Exemples de requêtes usuelles
 3 Tutoriels d'introduction
 Manuel de Référence MySQL 4.1 : Version Française
 
 . La valeur maximale d'une colonne
 . La ligne contenant le maximum d'une certaine colonne
 . Maximum d'une colonne par groupe
 . La ligne contenant la plus grande valeur d'un certain champ par rapport à un groupe
 . Utiliser les variables utilisateur
 . Utiliser les clefs étrangères
 . Recherche sur deux clefs
 . Calcul du nombre de visites par jour
 ->Utiliser AUTO_INCREMENT
 
 
 | 
  3.6.9 Utiliser AUTO_INCREMENT 
    
L'attribut  
AUTO_INCREMENT
  peut être utilisé 
pour générer un identifiant
unique pour les nouvelles lignes : 
 Qui retourne :| 
CREATE TABLE animals (id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)
 );
 INSERT INTO animals (name) VALUES ("dog"),("cat"),("penguin"),
 ("lax"),("whale"),("ostrich");
 SELECT * FROM animals;
 | 
 Vous pouvez obtenir la valeur utilisée de la clef  
AUTO_INCREMENT
  avec
la fonction SQL  
LAST_INSERT_ID()
  ou la fonction d'API  
mysql_insert_id()
 .Note : Pour une insertion multi-lignes,  
LAST_INSERT_ID()
 / 
mysql_insert_id()
 
retourneront la clef  
AUTO_INCREMENT
  de la  
première
  ligne insérée. Cela
permet de reproduire les insertions multi-lignes sur d'autres services.| 
+----+---------+| id | name    |
 +----+---------+
 |  1 | dog     |
 |  2 | cat     |
 |  3 | penguin |
 |  4 | lax     |
 |  5 | whale   |
 |  6 | ostrich |
 +----+---------+
 | 
 
Pour les tables  
MyISAM
  et  
BDB
  vous pouvez spécifier  
AUTO_INCREMENT
  sur une colonne
secondaire d'une clef multi-colonnes. Dans ce cas, la valeur générée pour la colonne 
auto-incrémentée est calculée de la façon suivante :  
MAX(auto_increment_column)+1) 
WHERE prefix=given-prefix
 . C'est utile lorsque vous voulez placer des données dans des 
groupes ordonnés.
 Qui retourne :| 
CREATE TABLE animals (grp ENUM('fish','mammal','bird') NOT NULL,
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (grp,id)
 );
 INSERT INTO animals (grp,name) VALUES("mammal","dog"),("mammal","cat"),
 ("bird","penguin"),("fish","lax"),("mammal","whale"),
 ("bird","ostrich");
 SELECT * FROM animals ORDER BY grp,id;
 | 
 Notez que dans ce cas, la valeur d' 
AUTO_INCREMENT
  sera réutilisée si vous 
effacez la ligne avec la plus grande valeur d' 
AUTO_INCREMENT
  tous groupes 
confondus. Cela n'arrive jamais avec les tables  
MyISAM
 , dont les valeurs
 
AUTO_INCREMENT
  ne sont jamais réutilisées.| 
+--------+----+---------+| grp    | id | name    |
 +--------+----+---------+
 | fish   |  1 | lax     |
 | mammal |  1 | dog     |
 | mammal |  2 | cat     |
 | mammal |  3 | whale   |
 | bird   |  1 | penguin |
 | bird   |  2 | ostrich |
 +--------+----+---------+
 | 
 |