Primärschlüssel unter MySQL neu durchnummerieren

In einer Datenbanktabelle verfügt man im Normalfall über ein Feld, welches als Primärschlüssel fungiert. Dieses Feld ist dabei in den meisten Fällen als Integer mit einer Autoinkrement-Funktion ausgelegt. Unter Umständen kann es passieren, das man diese ID neu von 1 an vergeben möchten, also ein sogenanntes Renumbering durchführen möchte. Mittels SQL kann man das ganze dabei wie folgt erreichen:

SET @a = 0;
UPDATE tabellenName SET ID = (@a := @a +1);
ALTER TABLE tabellenName  AUTO_INCREMENT = 1;

Bei der Ausführung dieser Befehle wird das Feld ID ab 1 neu durchnummeriert und der Autoinkrement-Index auf den entsprechenden Wert gesetzt.

5 Kommentare » Schreibe einen Kommentar

  1. Hallo Florian –
    freundliche Menschen gibt es auch bei uns im Westerwald.. 😉
    Vielen Dank für den schönen Tip mit der Neuorganisation der ID. Ich weiß, das ist Kosmetik, sieht aber im Ausdruck schöner aus.
    🙏 Helmut Schneider-Siebert

  2. Besten Dank, das ist mehr als Kosmetik. Ich habe fünf Stunden damit zugebracht, zwei Tabellen aus zwei Datenbanken zusammenzuführen (kenne SQL nur ganz rudimentär) und es funktionierte nicht, weil Indizes doppelt waren. Mit diesem Tipp war alles in wenigen Minuten erledigt.
    You made my day!

Schreibe einen Kommentar zu Helmut Schneider-Siebert Antworten abbrechen

Pflichtfelder sind mit * markiert.