Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Lassen Sie die MySQL-Auto-Increment-ID (erneut) bei 1 beginnen

Angenommen, es gibt keine Probleme mit Fremdschlüsseln, mit denen Sie sich befassen müssen, wird dieser Code es tun:

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

Wenn es Probleme mit Fremdschlüsseln gibt, stellen Sie sicher, dass Ihre Einschränkungen vorher so definiert sind Sie führen das Update durch:

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

Wenn alles fertig ist, führen Sie Folgendes aus, um den auto_increment-Wert zu korrigieren:

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