Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/11/2005, 16:30
Avatar de edwinandlozano
edwinandlozano
 
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 20 años, 5 meses
Puntos: 0
Cita:
Iniciado por FedeMichell
El comentario de turco_7 es válido, pero podrias tener el siguiente problema, y es que el autoincrement no incrementa apartir del id anterior que este en la tabla, sino a partir del ultimo id generado.
Me explico mejor con un ejemplo. Este es el error q te podria suceder si haces lo que turco_7 dice.

- Digamos q en la tabla alumno el max id generado es 10 (obiamente el proximo seria 11)
- Pero eliminas a ese alumno por alguna razon.
- En ese caso al hacer la consuta el max id de la tabla alumno sera 9.
- Entonces, al ingresar un nuevo curso para un nuevo alumno, el max id alumno de la tabla curso seria 10 (porque vos manualmente lo incrementaste en 1).
- Pero al autoincrementarse el id del alumno en la tabla alumno el id no va a ser 10, sino 11, pues el autoincrement no se incrementa a partir del ultimo id que está en la tabla, sino a partir del ultimo que estubo, aunque fuera eliminado.
- De esta manera el id del alumno en la tabla alumno seria 11, y el id del alumno en la tabla curso seria 10, y se perderia la relación.

Ese es el problema. La solucion de Turco_7 seria valida si nunca pensas eliminar a un alumno de la tabla.

Yo te aconcejaria que dejaras de usar autoincrement, y los autoincrementes vos manualmente con alguna funcion, que bien podria ser la que dice Turco_7.
Quita el autoincrement de ambas tablas.

"Se que todo esta muy confuso, pero espero que me entiendas"
Saludos y suerte
FedeMichell tiene toda la razon... para esa cuestiones los DB responsables utilizan secuencias las cuales son muy utiles para estos casos.... lee un poco mas referente al tema segun el motor que este utilizando