Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - valor de decremento automático


Você não deve fazer isso.
Não use um identificador exclusivo auto-incrementado como um número ordinal.
A palavra "único" significa que o identificador deve ficar preso em sua linha para sempre .

Não há conexão entre esses números e a enumeração.
Imagine que você deseja selecionar registros em ordem alfabética. Para onde iriam seus preciosos números? Um banco de dados não é como uma lista ordenada, como você provavelmente pensa. Não é um arquivo simples com linhas armazenadas em uma ordem predefinida. Tem uma ideologia totalmente diferente. As linhas no banco de dados não têm nenhuma ordem. E será solicitado apenas no horário selecionado, se tiver sido definido explicitamente por ORDER BY cláusula.
Além disso, um banco de dados deve fazer uma pesquisa para você. Portanto, você pode dizer que, com linhas filtradas ou ordenação diferente, esse número de incremento automático não terá absolutamente nada a ver com as posições reais das linhas.

Se você deseja enumerar a saída - é um trabalho da camada de apresentação. Basta adicionar um contador no lado do PHP.

E novamente:esses números deveriam identificar um determinado registro. Se você alterar esse número, nunca mais encontrará seu registro.

Tome este mesmo site por exemplo. O Stack Overflow identifica suas perguntas com esse número:

Então, imagine que você salvou o endereço desta página em um marcador. Agora Jeff vem e renumera todo o banco de dados. Você pressiona seu marcador e pousa na pergunta diferente. O site inteiro se tornaria uma bagunça terrível.

Lembre-se:renumerar identificadores únicos é um mal!