Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/05/2010, 02:31
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Crear indice autonumerico en una tabla con datos

Un indice autonuémrico como pides no es la mejor solución para hacer lo que dices. me explico:

Si tienes

ID AnioExp
1 2010/1

y viene alguien e inserta el registro 2010/3 obtendrà el indice 2 y si despues alguien inserta el registro 2010/2 tendrà el indice 3 con lo que tendras otra vez la tabla "desordenada". Con el autoinc tienes muy facil obtener el ultimo registro entrado pero no el ultimo expediente del año.

Un indice automunerico se usa para obtener un identificador único de los registros pero no asegura la ordenación de estos por otros criterios (este seria el caso que nos planteas).

Luego como solucionaria yo tu caso, puestos a rediseñar agregaria el campo autonumerico con el objetivo de tener una clave principal unica, luego crearia dos campos numéricos uno para el año y otro para el expediente luego crearia un indice unico compuesto por esos dos campos.

Todo esto lo haces en una tabla nueva con la misma estructura que la tabla original mas estos tres campos que te digo.

Luego con un INSERT INTO buelcas todos los registros de la tabla original a la nueva. El autoincremental no tines que ponerlo se llenara solo. Usa lo que has aprendido para ordenar para separar el contenido del campo anio/exp.... a los campos anio y expediente.


La nueva tabla sera muy facil de ordenar por esos dos campos...


Otra manera de solucionar es usar un numero fijo de digitos para el numero de expediente


2010/00001
2010/00002
....
2010/10000
2010/10001


Espero que te sirva...

Quim