SQL Index / Autoschlüssel

Überkinger

Lieutenant
Registriert
Juli 2010
Beiträge
600
Hallo,

habe eine Datendank mit einer Tabelle und 5 Feldern

Das 1. Feld wurde automatisch angelegt:

Feld: id
Typ: int(11)
Kollation:
Attributte: UNSIGNED
Null: Nein
Standard:
Extra:auto_increment

Ich habe jetzt schon einige neue Datensätze eingefügt, bei denen das Feld id jeweils um 1 hochgesetzt wird. Der Zähler steht auf 8.

Frage: Wo wird diese Zahl gespeichert und wo kann ich sie zurücksetzen?
 
TRUNCATE TABLE sollte das Feld zurücksetzen, wodurch jedoch auch jegliche Datensätze verloren gehen.
 
zurücksetzen ohne leeren geht aber niciht, weil spätestens wenn man dann was reinschreiben will und der primary key schon existiert kracht es beim insert.
normal sollte man das ding gar nicht anfassen, gibts auch keinen grund zu!
 
danke
 
Sehe ich nicht so, Easteregg - in beiden Punkten nicht.

Bei einem Insert auf Tabellen mit einem Autoindex setzt man das Autoindex-Feld ja nicht selbst -
deswegen ists ja ein automatischer Index ;-)
Unter MySQL erhält der Index nach dem Befehl

Code:
ALTER TABLE tabellenname AUTO_INCREMENT=0;

die kleinstmögliche Zahl.
Hast du eine Tabelle mit Tieren, also etwas wie

index tier
1 Affe
...
100 Kaninchen
134 Hund

und dein Index ist bei 1.000.000, weil du massiv gelöscht hast, setzt obiger Befehl den Index auf 135 - ein

Code:
INSERT INTO Tabellenname (tier) VALUES ('Kranich')

erzeugt also

135 Kranich

Schau dir bitte die verlinkte Dokumentation an.
 
trotzdem hast du dort mitunter - je nachdem wie dein komplettes db system aufgebaut ist - dass die die historisch gesehene doppelbelegung zu problemen führen kann.
selbst wenn der index bei 100k steht, das sollte für keine anwendung ein problem sein.
 
Zurück
Oben