Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

ayuda con el auto incremento

Estas en el tema de ayuda con el auto incremento en el foro de Mysql en Foros del Web. hola como puedo hacer para cuando hago un DELETE de una fila de la tabla... cuando vuelvo a insertar recorrar las filas una por una ...
  #1 (permalink)  
Antiguo 26/07/2008, 11:37
 
Fecha de Ingreso: julio-2008
Ubicación: Santa Fe
Mensajes: 66
Antigüedad: 15 años, 9 meses
Puntos: 0
ayuda con el auto incremento

hola como puedo hacer para cuando hago un DELETE de una fila de la tabla...
cuando vuelvo a insertar recorrar las filas una por una y me lo inserte en el lugar donde haya un "hueco"
porq lo que yo hice fue poner un idClientes, y cuando borro por ej el 2, cuando hago un alta de clientes me lo inserta en el ultimo lugar y el 2 nunca mas se vuelve a ocupar, no se si se habra entendido
  #2 (permalink)  
Antiguo 26/07/2008, 13:03
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Respuesta: ayuda con el auto incremento

El autoincrement así es, cuando borras un registro pues queda "hueco", pero es conveniente cuando tienes dependencias de otras tablas con esa fila idClientes, te recomiendo que pases por alto ese gran detalle
  #3 (permalink)  
Antiguo 26/07/2008, 13:18
 
Fecha de Ingreso: julio-2008
Ubicación: Santa Fe
Mensajes: 66
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: ayuda con el auto incremento

Cita:
pero es conveniente cuando tienes dependencias de otras tablas con esa fila idClientes
esa parte no te entendi, habras querido decir INCOVENIENTE?

yo a idCliente lo voy a usar con otra tabla, es decir, una tabla Factura, va a estar ligada a los idClientes...
pensando, lo 1ro q se me ocurre es que cuando haga un DELETE de una fila de Clientes tb voy a tener q hacer un DELETE de los idClientes en la lista factura...

espero q no se me haga un problema, gracias de todos modos lado2mx
  #4 (permalink)  
Antiguo 27/07/2008, 12:50
Avatar de 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: ayuda con el auto incremento

Si tienes una tabla clientes con un ID autoincremental y borras un registro, y ese id borrado figura como FOREIGN KEY en otra tabla, digamos facturas, por principio:
1. No lo puedes borrar. MySQL no lo permitirá porque existe una dependencia entre las dos tablas.
2. Si lo borras, porque la tabla fue definida con la cláusula ON DELETE CASCADE, ni te preocupes, el acto de borrar uno geeró el borrado de todas las demás.
3. SI el ID figura en otras tablas como FK, pero usas el motor MyISAM de MySQL, deberás eliminar los demás registros de las otras tablas en forma directa. MySAM no controla FK.
4. En cualquier caso NO ES CONVENIENTE usar los valores de los "HUECOS" por: a) continuidad histórica de los clientes ingresados, b) posibles inconsistencias si alguna tabla dentro de la base conserva información del cliente borrado y la clave no se definió como FK (no hay dependencia administrada por MySQL), c) inutilidad del proceso, considerando que para que te faltasen número de clientes deberías tener más de 2.147.483.647 clientes si lo definiste como INTEGER, más de 4.294.967.295 si lo definiste como INTEGER UNSIGNED y más de 18.446.744.073.709.551.615 si lo hiciste como BIGINT UNSIGNED. ¿Para qué quieres llenar los huecos? Es una tarea inútil.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/07/2008, 13:45
 
Fecha de Ingreso: julio-2008
Ubicación: Santa Fe
Mensajes: 66
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: ayuda con el auto incremento

gnzsoloyo me lo dejaste bien clarito gracias por tu ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.