sql >> Base de Datos >  >> RDS >> Mysql

MySQL - valor decreciente automático

No debe hacer eso.
No tome un identificador único incrementado automáticamente como un número ordinal.
La palabra "único" significa que el identificador debe estar adherido a su fila para siempre .

No hay conexión entre estos números y la enumeración.
Imagine que desea seleccionar registros en orden alfabético. ¿Adónde irían sus preciados números? Una base de datos no es como una lista ordenada, como probablemente piense. No es un archivo plano con filas almacenadas en un orden predefinido. Tiene una ideología totalmente diferente. Las filas en la base de datos no tienen ningún orden. Y se ordenará solo en el momento seleccionado, si fue establecido explícitamente por ORDER BY cláusula.
Además, se supone que una base de datos hace una búsqueda por usted. Entonces, puede decir que con las filas filtradas o con un orden diferente, este número de incremento automático no tendrá absolutamente nada que ver con las posiciones reales de las filas.

Si desea enumerar la salida, es el trabajo de una capa de presentación. Simplemente agregue un contador en el lado de PHP.

Y de nuevo:se supone que estos números identifican un determinado registro. Si cambia este número, nunca volverá a encontrar su registro.

Tome este mismo sitio, por ejemplo. Stack Overflow identifica sus preguntas con un número de este tipo:

Entonces, imagine que guardó la dirección de esta página en un marcador. Ahora llega Jeff y vuelve a numerar toda la base de datos. Presionas tu marcador y aterrizas en la pregunta diferente. Todo el sitio se convertiría en un desastre terrible.

Recuerde:¡Renumerar los identificadores únicos es malo!