Mysql
 sql >> Base de données >  >> RDS >> Mysql

Faire en sorte que l'identifiant d'auto-incrémentation MySQL (re)commence à partir de 1

En supposant qu'il n'y ait pas de problème de clé étrangère à traiter, ce code le fera :

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

S'il y a des problèmes de clé étrangère, assurez-vous que vos contraintes sont définies comme ceci avant vous exécutez la mise à jour :

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

Lorsque tout est terminé, exécutez ceci pour corriger la valeur auto_increment :

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