Crear un secuencia en Mysql a partir de un numero fijo

Necesito hacer una secuencia en un campo, para iniciar yo coloqué el campo AUTOINCREMENT y si él me hace la secuencia bien, pero yo necesito que esa secuencia me empiece a partir de un numero especifico, ejemplo 1900, el siguiente seria 1901, 1902,1903, y así consecutivamente, ¿y eso porque? Porque necesito identificar los primeros dígitos para saber de qué código se trata, digamos los que empiezan por 19 serian artículos, los que empiezan por 18 serian proveedores, etc, y no tengo ni la menor idea de cómo hacer eso.

1 Respuesta

Respuesta
1
Mi recomendación es que no mezcles cosas. Si necesitas un código y quieres que esté codificado, no puedes pedirle a la tabla que sea autoincremental, porque en ese caso sólo será autoincremental para el valor más alto, pero tu caso es distinto tú quieres que cada tipo de registro tenga su propia numeración.
No suele ser buena práctica mezclar cosas tan distintas como artículos y proveedores en la misma tabla, pero si es tu necesidad, te recomendaría que el campo no fuese autoincremental.
En lugar de eso, cada vez que vayas a dar de alta un registro, consultas el 'número que le toca' mediante por ejemplo:
SELECT (MAX(id) + 1) AS siguiente FROM tutabla WHERE id<=($tucodigo * 100 + 99)
Donde $tucodigo representa el 18 para proveedores o el 19 para artículos.
Con esto obtendrás el identificador apropiado cada vez.
Ok, gracias por su respuesta pero quede con la duda, yo por ahora tengo el campo como autoincrement pero lo que me hace tampoco es lo que yo busco, necesito que inicie el campo en 1900, osea que desde el primer registro que introduzca el me coloque solo 1901, osea que ya estuviese predefinido para que empiece en 1900 ese campo. Lo que quiero es no tener que introducirle yo el código si no que el sistema me lo de automáticamente, para cada tabla el campo código me empezaría por un valor especifico, si es en la tabla proveedores el campo código empezaría por 1900, si es en la tabla clientes el código empezaría por 1800, le agradezco mucho que me haya respondido espero ser clara en mi pregunta, y que responda pronto a esta también, gracias.
Para eso que quieres sólo tienes que indicarlo al crear la tabla. Por ejemplo:
CREATE TABLE tutabla (tucampo1 int(11) auto_increment, tucampo2 int(11) ) AUTO_INCREMENT=1801;
Con esto el primer registro que creará lo hará con un valor de 1801 para tucampo1 y posteriormente serán incrementales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas