Mysql
 sql >> Database >  >> RDS >> Mysql

Fai in modo che l'ID di incremento automatico di MySQL (ri) parta da 1

Supponendo che non ci siano problemi di chiave esterna da affrontare, questo codice lo farà:

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

Se sono presenti problemi di chiave esterna, assicurati che i tuoi vincoli siano definiti in questo modo prima esegui l'aggiornamento:

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

Al termine, esegui questa operazione per correggere il valore di auto_increment:

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