Se você estiver usando MyISAM, poderá criar uma chave primária composta em um campo de texto + campo de incremento automático. O MySQL lidará com o incremento do número automaticamente. Eles são campos separados, mas você pode obter o mesmo efeito.
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 você faz uma inserção na tabela, o
key_increment
campo será incrementado com base no valor mais alto com base em key_prefix
. Então insira com key_prefix
"smit" começará com 1 em key_inrement
, key_prefix
"jone" começará com 1 em key_inrement
, etc Prós:
- Você não precisa fazer nada para calcular números.
Contras:
- Você tem uma divisão de chave em duas colunas.
- Não funciona com InnoDB.