Maison > Article > base de données > Comment puis-je créer des champs à incrémentation automatique qui regroupent les données en fonction d'une colonne spécifique dans MySQL ?
Regroupement de champs à incrémentation automatique dans MySQL
Dans MySQL, on peut créer des champs à incrémentation automatique qui s'incrémentent en fonction d'une colonne de regroupement, permettant pour le classement des données groupées.
Mise en œuvre
Pour les tables MyISAM et BDB, la structure de table suivante peut être utilisée :
CREATE TABLE foo ( id INT AUTO_INCREMENT NOT NULL, group_field INT NOT NULL, name VARCHAR(128), PRIMARY KEY(group_field, id) );
Explication
Avec cette structure, la valeur d'auto-incrémentation de la colonne "id" est déterminée par la formule suivante :
MAX(auto_increment_column) 1 WHERE prefix=given-prefix
Dans ce cas, le « préfixe » représente la valeur de la colonne « group_field », regroupant efficacement les données pour le calcul d'incrémentation automatique.
Exemple
Considérez le tableau suivant :
id | name | group_field |
---|---|---|
1 | test | 1 |
2 | test2 | 1 |
1 | test3 | 2 |
2 | test4 | 2 |
1 | test5 | 3 |
2 | test6 | 3 |
Lors de l'insertion de nouveaux enregistrements, la colonne "id" s'incrémentera automatiquement au sein de chaque groupe, ce qui entraînera :
id | name | group_field |
---|---|---|
3 | test | 1 |
4 | test2 | 1 |
3 | test3 | 2 |
4 | test4 | 2 |
3 | test5 | 3 |
4 | test6 | 3 |
Ce comportement de regroupement peut être utile pour organiser et classer les données dans des tableaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!