sql >> Database >  >> RDS >> Mysql

Opnieuw ordenen/reset auto increment primaire sleutel

Hoewel deze vraag vrij oud lijkt, zal ik een antwoord posten voor iemand die hier zoekt.

SET @count = 0;
UPDATE `users` SET `users`.`id` = @count:= @count + 1;

Als de kolom in andere tabellen als refererende sleutel wordt gebruikt, zorg er dan voor dat u ON UPDATE CASCADE gebruikt. in plaats van de standaard ON UPDATE NO ACTION voor de externe sleutelrelatie in die tabellen.

Verder, om de AUTO_INCREMENT . te resetten tellen, kunt u onmiddellijk de volgende verklaring afgeven.

ALTER TABLE `users` AUTO_INCREMENT = 1;

Voor MySQL's wordt de waarde teruggezet naar MAX(id) + 1 .



  1. Een waarschuwing uitschakelen in sqlalchemy

  2. Gedrag van NOT LIKE met NULL-waarden

  3. Kan geen verbinding maken met server - Een netwerkgerelateerde of instantiespecifieke fout

  4. Kan ik de retourwaarde van INSERT...RETURNING gebruiken in een andere INSERT?