Convertir des tables MyISAM vers InnoDB
<<<
Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB Contraintes de clés étrangères FOREIGN KEY
>>>

16.7 Créer des tables InnoDB
16 Tables InnoDB
 Manuel de Référence MySQL 4.1 : Version Française

Comment utiliser les transactions de InnoDB avec différentes API
Convertir des tables MyISAM vers InnoDB
->Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB
Contraintes de clés étrangères FOREIGN KEY
InnoDB et la réplication MySQL
Multiple tablespaces - putting each table into its own .ibd file

16.7.3 Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB

Après le démarrage du serveur, lorsque le premier utilisateur fait une insertion dans la table T où une colonne a été définie comme AUTO_INCREMENT , et que l'utilisateur ne fournit pas de valeur explicite pour cette colonne, alors InnoDB exécute la requête SELECT MAX(auto-inc-column) FROM T , et assigne la valeur obtenue dans la colonne. Nous pouvons dire que le compteur de la table T a été initialisé.

InnoDB suit la même procédure d'initialisation des compteurs auto-incrémentables pour les nouvelles tables.

Notez que si l'utilisateur spécifie la valeur zéro pour la colonne auto-increment, alors InnoDB va traiter la ligne comme si aucune valeur n'a été spécifiée.

Une fois le compteur initialisé, si un utilisateur insère une valeur où il spécifie explicitement la valeur de la colonne, et que la valeur est plus grande que la valeur courante du compteur, alors le compteur prend la valeur spécifiée. Si l'utilisateur ne spécifie pas explicitement la valeur de la colonne, alors InnoDB incrémente le compteur, et assigne la nouvelle valeur à la colonne.

Le mécanisme auto-increment, lorsqu'il assigne une valeur du compteur, contourne les verrous et les transactions. Vous pourriez donc voir des trous dans la séquence, si vous annulez une transaction avant d'avoir enregistré la valeur du compteur.

Le comportement du mécanisme auto-increment n'est pas défini si un utilisateur place une valeur négative dans la colonne, ou si la valeur dépasse la plus grande valeur du type d'entier spécifié.

<< Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB >>
Convertir des tables MyISAM vers InnoDB Créer des tables InnoDB Contraintes de clés étrangères FOREIGN KEY