sql >> Database >  >> RDS >> Mysql

Laat MySQL auto-increment id (opnieuw) starten vanaf 1

Ervan uitgaande dat er geen buitenlandse sleutelproblemen zijn om op te lossen, zal deze code het doen:

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

Als er problemen met externe sleutels zijn, zorg er dan voor dat uw beperkingen vooraf als volgt zijn gedefinieerd je voert de update uit:

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

Als alles klaar is, voer je dit uit om de auto_increment-waarde te herstellen:

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


  1. Wat zegt de SQL-standaard over haakjes in SQL UNION/EXCEPT/INTERSECT-instructies?

  2. Wat is de juiste manier om de node.js postgresql-module te gebruiken?

  3. Fix "Conversie mislukt bij het converteren van de varchar-waarde" bij het proberen samen te voegen in SQL Server

  4. Ontdek collatie van een MySQL-kolom