[ACCEDER] restablecer el ID de autoincremento

Resuelto
xdiz Mensajes publicados 109 Fecha de registro   Estado Miembro Última intervención   -  
 Dodino -
Bonsoir,

Después de haber realizado pruebas en mi tabla, deseando que mi ID se restablezca a cero para hacer que una tabla sea "saludable", hice un DELETE * FROM maTable y también intenté TRUNCATE TABLE maTable, pero la función TRUNCATE no funciona en ACCESS.

¿Cómo puedo restablecer un ID de auto incremento a cero después de haber eliminado TODAS las tuplas de la tabla?
Configuración: Windows XP Firefox 3.0.1

11 respuestas

FabDev92
 
Hola,
tengo una solución que no es mediante una consulta SQL, sino una funcionalidad de ACCESS:
Cuando la tabla ha sido vaciada de sus tuplas, en el menú "Herramientas", se puede utilizar "Utilidades de bases de datos" -> "Compactar una base de datos"
=> Esto restablece a 0 el contador de los campos de autoincremento.

ATENCIÓN: esto puede ser peligroso si la tabla aún contiene tuplas, ya que el campo de autoincremento vuelve a comenzar en 0 y podría, en algún momento, coincidir con un valor que ya ha sido usado, lo que generaría un problema si este mismo campo forma parte de la clave primaria.
23
Dodino
 
gracias hermano
0
Jean_Jacques Mensajes publicados 1045 Fecha de registro   Estado Miembro Última intervención   112
 
Hola,

Solo conozco un método para obtener el resultado deseado.
- Seleccionar la tabla correspondiente
- ctrl+C y luego ctrl+V
- Asignar un nombre arbitrario
- Elegir la opción solo estructura

Basta con sustituir la antigua por la nueva tabla así creada

Es de gran ayuda

Buen día
La ciencia solo encuentra lo que siempre ha existido.
REEVES Hubert.
3
Christian
 
Hola
Es muy simple. Muestras tu tabla en modo creación, eliminas el campo que contiene el número automático y lo vuelves a crear con el mismo nombre. Comenzarás de cero. Por seguridad, antes de hacer esta manipulación, haz una copia de seguridad.
Christian
2
Lys
 
No funciona :-(
0
almux Mensajes publicados 22 Estado Miembro 2
 
Hola,

He intentado la operación... Ahora debería poner un campo auto-incremental en la primera posición de la tabla... Pero no puedo hacerlo.
Se niega a poner el auto-incremento:
Error
consulta SQL:

ALTER TABLE `contactlivre_1` CHANGE `ref_com` `ref_com` VARCHAR( 8 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL AUTO_INCREMENT

MySQL respondió:

#1063 - Especificador de columna incorrecto para la columna 'ref_com'

¿Qué hay que hacer?

¡AYUDA!!!!! Aaaaaaaargl!

RESOLUT: ¡No SE DEBE PONER VARCHAR... sino INT!!!!!!
¡Uff!

;)
1
xdiz Mensajes publicados 109 Fecha de registro   Estado Miembro Última intervención   41
 
Hola,

Si realmente es la única, entonces haré lo que dices ;)

Gracias. ¡Hasta luego!
0
Jean_Jacques Mensajes publicados 1045 Fecha de registro   Estado Miembro Última intervención   112
 
Xdiz,

Me sorprende que ningún otro colaborador haya propuesto algo mejor ...
Un método más ... digamos "cuadrado" me habría gustado.
Mientras no haya algo mejor, mi solución deberá ser considerada como la mejor.

De hecho, estoy algo decepcionado. A seguir ...

De todos modos, gracias por la retroalimentación

¡Hasta luego!
La ciencia solo encuentra lo que siempre ha existido.
REEVES Hubert.
0
xdiz Mensajes publicados 109 Fecha de registro   Estado Miembro Última intervención   41
 
Yo también habría querido que fuera mejor sin querer ofenderte... porque tu método es un poco improvisado ;)

Esperemos un poco a que un profesional de ACCESS llegue al tema :)
0
mike
 
Désolé, je ne peux pas accéder aux contenus des liens. Si vous avez besoin d'une traduction ou d'un résumé d'un texte particulier, veuillez le fournir ici.
0
xdiz Mensajes publicados 109 Fecha de registro   Estado Miembro Última intervención   41
 
Hola Fab, yo también lo hice, pero no existen soluciones en lenguaje SQL para resolver este problema en Access.
Al final solo podemos compactar o copiar/pegar la estructura de las tablas.
Gracias de todos modos ;)
0
jouan_a
 
Yop,
Bueno, tal vez tenga algo más simple
para poner tu auto-incremento a cero en SQL
haces:

INSERT INTO tu_tabla (columna1, columna2, ..., auto-incr) VALUES (valor1, valor2, ..., 0)

tal vez debas poner varios valores si tienes campos obligatorios
auto-incr es el campo de auto-incremento que tienes, pones 0
después haces

DELETE FROM tu_tabla WHERE auto-incr = 0

y así tu primer registro será 1.
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
Hola,

Para compactar la base, es necesario marcar la biblioteca JRO en VBE, herramientas - referencia - Microsoft Jet and Replication Object .x library

Sub raz_autoincrement()
Dim je as new JRO.jetengine
Je.compactdatabase "Ruta y nombre de la base a limpiar", datasource "ruta y nombre de una base temporal"
kill "Ruta y nombre de la base a limpiar"
Name "ruta y nombre de una base temporal" as "Ruta y nombre de la base a limpiar"
end sub

¿en "claro"?
compactamos la base bajo un nombre temporal
borramos la base original
renombramos la base temporal al nombre de la base original

¿Necesito señalar que es más que prudente hacer una copia de la base antes de cualquier cosa y practicar primero con bases de datos de juguete?
esta procedimiento consume mucha adrenalina en el programador...

Como si la método manual descrita por Fab es la + sensata especialmente cuando se trata, como aquí, de limpiar después de una prueba (por lo tanto procedimiento único)

--
Cordialmente,
Michel
0
Usuario anónimo
 
¡Hola!

Para restablecer el ID de tu tabla, solo tienes que vaciarla después de haber guardado el contenido ^^
phpMyAdmin registrará el ID más grande existente y lo usará para las próximas inserciones.

Eso es todo,
Maxence

--
Cuando crecemos, aprendemos cosas que queríamos oír de pequeños.
0
almux
 
Gracias Maxence,

Efectivamente, la reconfiguración funciona perfectamente.
En primer lugar, había borrado el campo. Pero al recrearlo cometí dos errores:
1) Olvidé desmarcar "colocar después del primer campo" (!)
2) No puse el valor correcto (int) (!!)

Desde entonces, no hay más problemas. ;)

Almux
0
Usuario anónimo
 
Bueno, contento por ti de que vuelva a funcionar ^^

No dudes en visitar mi sitio de tutoriales, seguro que te interesará ^^
http://www.maxmicro.fr/

Maxence

--
Cuando crecemos, aprendemos cosas que queríamos oír de pequeños.
0