Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/06/2013, 17:14
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Auto_increment Mysql siempre parta de 1.

Cita:
¿alguna pista?
La más básica de todas: Lo que quieres hacer no tiene ninguna relación con autoincrementales, y ni siquiera tiene sentido usar un AI para eso.
Lo que quieres lograr, por lo que describes, es que un usuario pueda selecciona un número cualquiera en un rango del 000 al 999, para un sorteo. Pues para eso no usas un AI. Jamás.
Lo que tienes es que hacer lo mismo que ya dijiste:
Le das la oportunidad de que lo ingrese. Si ingresa el número, verificas en la base si ya se registró, y en caso de encontrarse, generas uno aleatoriamente en base a un algoritmo que incluya verificación a la base de los generados, o bien buscas el primero disponible en los "huecos" de la base.
En principio, la mayor parte de esto lo haces por programación, y no en la base de datos, por lo que es OFF-TOPIC en este foro. En tu contexto la base sólo interviene validando los números existentes (un simple SELECT contra un valor dado), o bien devolviendo la lista existente al momento, a fin de que la aplicación encuentre los huecos correspondientes.
Pero el AI en ningún momento es PK de la tabla, y por tanto no se lo puede usar, por restricciones de MySQL (si existe un AI, debe ser PK o parte de la PK, y no es el caso).
Lo único que te puedo recomendar, para asegurarte la unicidad de los valores, es que ese campo sea UNIQUE, a fin de que no se pueda ingresar dos veces el valor erróneamente. Pero para más precisión necesitaría conocer la estructura exacta (el CREATE TABLE) y el contexto de los sorteos, para verificar las condiciones que se necesitarían para permitir que el sistema se peuda usar en más de un sorteo (hacer el campo UNIQUE restringiría el sistema a un único sorteo).
Como sea, la mayor parte del tema está fuera de la competencia de la base de datos. ¿Eso se entiende?
No te servirá usar un AI para este proyecto.

Por lo demás, un campo numérico no puede restringirse en MySQL a un valor del rango 000 a 999, eso al menos no en cuanto estructura, porque no existen las constraint CHECK en MySQL, que sí existen en otros DBMS.

¿Se entiende todo esto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)