Você deseja usar uma sequência .
Duas ressalvas:
-
OAUTO_INCREMENT
recurso descrito no artigo não é padrão e pode causar problemas de portabilidade ao mover para um banco de dados diferente.
-
Se umINSERT
é abortado, um número da sequência ainda é consumido, então você pode acabar com falhas na sequência. Se isso for inaceitável, use uma sequência gerada automaticamente para a chave primária (substituta) e adicione um mapa separado dessa chave ao número de sequência "oficial", reforçando a exclusividade no índice dessa tabela.
A alternativa é aplicar
UNIQUE
ness no banco de dados, use um TRANSACTION ISOLATION LEVEL
apropriado e adicione a lógica do aplicativo para lidar com a falha de INSERT
.