Se stai usando MyISAM, puoi creare una chiave primaria composta su un campo di testo + campo di incremento automatico. MySQL gestirà l'incremento del numero automaticamente. Sono campi separati, ma puoi ottenere lo stesso effetto.
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;
Quando esegui un inserimento nella tabella, il key_increment
il campo aumenterà in base al valore più alto basato su key_prefix
. Quindi inserisci con key_prefix
"smit" inizierà con 1 in key_inrement
, key_prefix
"jone" inizierà con 1 in key_inrement
, ecc.
Pro:
- Non devi fare nulla con il calcolo dei numeri.
Contro:
- Hai una suddivisione delle chiavi su 2 colonne.
- Non funziona con InnoDB.