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

borrar registros de una tabla

Estas en el tema de borrar registros de una tabla en el foro de Mysql en Foros del Web. soy nuevo en esto,el problem que tengo es que yo borro los registros de una tabla,pero como el codigo es autoincremental,ala hora de generar empieza ...
  #1 (permalink)  
Antiguo 23/04/2009, 08:37
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
borrar registros de una tabla

soy nuevo en esto,el problem que tengo es que yo borro los registros de una tabla,pero como el codigo es autoincremental,ala hora de generar empieza desde el ultimo regitro que fue borrado,yo quisiera que alguiem me ayude de como hacer que al borrar los registros que vuelva a empesar desde 1.
  #2 (permalink)  
Antiguo 23/04/2009, 08:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: borrar registros de una tabla

Maglorio.

No es posible esto.
Lo que puedes hacer es setear el auto_increment cuando borres todos los registros.

Código mysql:
Ver original
  1. alter table tabla_ejemplo auto_increment = 1;

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/04/2009, 09:46
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: borrar registros de una tabla

Hola maglorio

Si se puede hacer lo que pides siempre y cuando borres todos los registros de la tabla, es usando la sentencia TRUNCATE

Código sql:
Ver original
  1. TRUNCATE TABLE tu_tabla

Esto eliminará todos los registros, y reiniciará el auto increment

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #4 (permalink)  
Antiguo 23/04/2009, 15:43
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: borrar registros de una tabla

De tanto en tanto surge nuevamente este tema y en general lo que quieren hacer es siempre lo mismo: renumerar. Hace un tiempo dos foristas preguntaron este asunto y te paso a comentar lo que les dije a ellos:

1. No es conveniente "reorganizar" un índice autoincremental porque en esencia es una tarea sin funcionalidad, carente de practicidad y consumidora innecesaria de tiempo de proceso.

2. El renumerar las PRIMARY KEY de un campo incremental no produce ninguna mejora en la optimización de consultas, por lo que hacerlo solamente resulta en tiempo de PC consumido.

3. Renumerar un campo autoincremental, genera un nuevo ordenamiento FISICO de los datos (una PK genera un índice cluster), con la consiguiente sobrecarga del microprocesador, porque tiene que reescribir físicamente la tabla cada vez y reconstruir el índice completamente.

4. Tampoco es recomendable bajo ninguna circunstancia renumerar una PK (es el caso en MySQL donde un AUTOINCREMENT es PK por default) si se usa como FK de otras tablas, porque generará inconsistencia de datos entre registros de tablas relacionadas.

5. No se recomienza renumerar si existen datos históricos de otras transacciones, que hacen referencia a otros registros que tenían el mismo número. De hecho, en una tabla de stock, las ID jamás cambian porque el hecho que un producto ya no exista ni se fabrique no quiere decir que no aparezca en registros más antiguos. Pisar un ID sería lo mismo que ponerle a un recién nacido el número de documento de un muerto.

6. Por otro lado, ¿qué te importa que tengas espacios de números que ya no usas, en tanto la numeración sea secuencial e incremental? ¿para qué perder tiempo en renumerar?, ¿para que quede más lindo? . Eso lo puedes hacer perfectamente en la interfase, donde visualizas la tabla de datos.

7. SI tu temor es quedarte sin números para usar, un ID generado en un campo numérico UNSIGNED tiene estos rangos:

- TINYINT: 0 a 255.
- SMALLINT: 0 a 65.535.
- MEDIUMINT: 0 a 16.777.215
- INT: 0 a 4.294.967.295.
- BIGINT: 0 a 18.446.744.073.709.551.615


¿Te alcanza con esos rangos? Me parece que si...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 18:38.