sql >> Base de Datos >  >> RDS >> Mysql

Hacer que el ID de incremento automático de MySQL (re) comience desde 1

Suponiendo que no haya problemas de clave externa con los que lidiar, este código lo hará:

set @id:=0;
update mytable
set id = (@id := @id + 1)
order by id;

Si hay problemas de clave externa, asegúrese de que sus restricciones estén definidas así antes ejecutas la actualización:

ALTER CHILD_TABLE ADD CONSTRAINT
FOREIGN KEY MYTABLE_ID REFERENCES MYTABLE
ON UPDATE CASCADE; -- This is the important bit

Cuando todo esté listo, ejecute esto para arreglar el valor de auto_incremento:

SELECT MAX(ID) + 1 FROM MYTABLE; -- note the output
ALTER TABLE MYTABLE AUTO_INCREMENT = <result from above>;