2009-11-27 16 views
32

En mi tabla tbphotos tuve 100 grabaciones y luego borré todo, ahora que quiero reiniciar la entrada de datos veo que mi clave principal no empieza desde 1, sino que comienza desde 101, ¿hay alguna manera? -Trabajo en "administrador de MySQL"Restablecer la clave principal en mysql?

gracias

Respuesta

64

alter table foo AUTO_INCREMENT = 1

+1

gracias por todas las respuestas. – Kaveh

23

Puede restablecer el incremento automático de esta manera:

ALTER TABLE tablename AUTO_INCREMENT = 1 

Pero si usted está confiando en los valores autoincrement, tu programa es muy frágil Si necesita asignar números consecutivos a sus registros para que su programa funcione, debe crear una columna separada para eso, y no usar una ID de autoincremento de base de datos para este propósito.

+7

¿Puede explicar por qué el uso de valores de incremento automático hace que su programa sea frágil? – Ben

2

Si usa TRUNC en lugar de eliminar registros manualmente, se restablecerá su clave principal.

+0

TRUNCVATE no restablece el auto_id en las tablas INNODB – Slashterix

+1

@Slashterix - Los documentos especifican lo contrario: http: //dev.mysql.com/doc/refman/5.7/en/truncate-table.html ... Editar: Me acabo de dar cuenta qué edad tiene esta respuesta y comentario. –

+0

@ParrisVarney Gracias, estás en lo correcto. Estaba confundiendo el comportamiento descrito aquí http://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html#innodb-auto-increment-initialization – Slashterix

-1
DBCC CHECKIDENT (yourTable, RESEED, 0); 

Esto funcionó para mí :)

+0

Este es el servidor SQL, mientras que el pregunta fue preguntado mi MySQL. – Donnie

0

El código siguiente es mejor si tiene algunos datos en la base de datos ya, pero desea restablecer el ID de 1 sin borrar los datos. Copie y ejecute en el comando SQL

ALTER TABLE members DROP ID; 
ALTER TABLE members AUTO_INCREMENT = 1; 
ALTER TABLE members ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; 
Cuestiones relacionadas