Si está utilizando MyISAM, puede crear una clave principal compuesta en un campo de texto + campo de incremento automático. MySQL se encargará de incrementar el número automáticamente. Son campos separados, pero puedes obtener el mismo efecto.
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;
Cuando haces una inserción en la tabla, el key_increment
el campo se incrementará según el valor más alto basado en key_prefix
. Entonces inserte con key_prefix
"smit" comenzará con 1 en key_inrement
, key_prefix
"jone" comenzará con 1 en key_inrement
, etc.
Ventajas:
- No tienes que hacer nada con el cálculo de números.
Contras:
- Tienes una clave dividida en 2 columnas.
- No funciona con InnoDB.