Maison  >  Article  >  base de données  >  Comment implémenter l'incrémentation automatique par groupe dans MySQL ?

Comment implémenter l'incrémentation automatique par groupe dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 20:41:30484parcourir

How to Implement Auto-Increment by Group in MySQL?

Incrémentation automatique par groupe dans MySQL

MySQL fournit un moyen pratique d'incrémenter automatiquement une valeur de champ en fonction d'une colonne de regroupement. Ceci est particulièrement utile dans les scénarios où les enregistrements doivent être regroupés et numérotés au sein de chaque groupe.

Pour les tables MyISAM et BDB

Pour les tables MyISAM et BDB, incrémentation automatique peut être défini comme un élément clé secondaire. Par exemple, considérons la structure de table suivante :

CREATE TABLE foo (
   id          INT AUTO_INCREMENT NOT NULL,
   group_field INT NOT NULL,
   name        VARCHAR(128),

   PRIMARY KEY(group_field, id)
);

Dans cette structure, le champ id est défini comme auto-incrémenté, mais il fait également partie de la clé primaire avec le group_field. D'après la documentation MySQL :

In this case, the generated value for
   the AUTO_INCREMENT column is
   calculated as
   MAX(auto_increment_column) + 1 WHERE
   prefix=given-prefix. This is useful
   when you want to put data into ordered
   groups.

Exemple

À l'aide de la table foo créée ci-dessus, insérons quelques exemples de données :

INSERT INTO foo (group_field, name) VALUES (1, 'test'), (1, 'test2'), (2, 'test3'), (2, 'test4'), (3, 'test5'), (3, 'test6');

Après avoir inséré les données, le contenu de la table foo ressemblera à :

+----+-----------+------+
| id | group_field | name |
+----+-----------+------+
| 1  |          1 | test |
| 2  |          1 | test2 |
| 3  |          2 | test3 |
| 4  |          2 | test4 |
| 5  |          3 | test5 |
| 6  |          3 | test6 |
+----+-----------+------+

Comme vous pouvez le voir, la colonne id a été automatiquement incrémentée au sein de chaque groupe, en fonction de la valeur group_field.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn