Si vous utilisez MyISAM, vous pouvez créer une clé primaire composée sur un champ de texte + champ d'incrémentation automatique. MySQL se chargera d'incrémenter le nombre automatiquement. Ce sont des champs séparés, mais vous pouvez obtenir le même effet.
CREATE TABLE example (
company_name varchar(100),
key_prefix char(4) not null,
key_increment int unsigned auto_increment,
primary key co_key (key_prefix,key_increment)
) ENGINE=MYISAM;
Lorsque vous faites une insertion dans la table, le key_increment
le champ s'incrémentera en fonction de la valeur la plus élevée basée sur key_prefix
. Insérez donc avec key_prefix
"smit" commencera par 1 dans key_inrement
, key_prefix
"jone" commencera par 1 dans key_inrement
, etc.
Avantages :
- Vous n'avez rien à faire avec le calcul des nombres.
Inconvénients :
- Vous avez une clé répartie sur 2 colonnes.
- Cela ne fonctionne pas avec InnoDB.