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

Insertar en un campo de incremento automático

Ok, antes de que obtengas la respuesta a tu pregunta, debo advertirte sobre extremadamente mala práctica que estás tratando de hacer allí. No me malinterpretes, muchos han intentado hacer lo que estás haciendo y simplemente no es la forma en que deberían funcionar las cosas.

Su ID incrementado automáticamente es una clave principal. La clave principal se utiliza para identificar de forma única una fila en una tabla. Eso es todo. No tiene otro significado especial además de eso.

Entonces, ¿Qué significa eso para ti? Significa que su idea de "reservar" 1 - 10k para administradores es mala. ¿Porque es malo? Porque estás manipulando la clave principal. Nunca debe decidir cuál debe ser el valor de la clave principal, ese es el trabajo de las bases de datos por muchas razones (consistencia, por ejemplo). La otra cosa por la que es malo es que ha limitado a alguien a solo 10k entradas posibles. Por otro lado, ¿cómo ¿Calcularás cuál es la próxima entrada para los administradores? ¿Qué sucede si ha ingresado 1, 2, 3, 4 y luego elimina la entrada con ID =3? ¿Qué pasa entonces? ¿Cuál es tu próximo valor en secuencia? ¿3 o 5?

Habiendo dicho eso, probablemente deberías repensar tu estrategia. ¿Por qué no agregar un campo "isAdmin" que le indique si un administrador publicó algo o no?