Nächste Autoindex auf 1 zurücksetzen

annalena49

Mitglied
Hallo,

per php-Script leere ich meine MSQL-Tabelle

PHP:
# Function: Tabelle leeren 
function truncate_table($table){ 
    mysql_query("DELETE FROM $table"); 
    }

dies klappt auch alles, jedoch wird dabei nicht mein 'auto_increment' wieder auf NULL zurückgesetzt sondern zählt vom letzten Stand weiter hoch. Bevor ich neue Daten einlese muss ich diesen jedoch auf Null bzw. auf ( 1 ) für den nächsten Wert stellen.
PHPmyAdmin wäre ja jetzt eine Möglichkeit, jedoch nur eine ganz schlechte, wenn es automatisch ablaufen soll.
Wie kann ich das per php-Script lösen?
mfg
Annalena
 
Ja das ist richtig er zählt weiter hoch, da es sich um einen Primärschlüssel handelt. Wenn die Funktion wirklich so einfach aussieht, lösche doch die gesamte Tabelle und lege sie wieder neu an.
 
Hi,
das neue Anlegen einer kompletten Tabelle stelle ich mir aufwändiger vor als nur den Index auf Null zu stellen.
Ich hoffe, das es hier einen Befehl gibt. Oder per php-Script den Index löschen und gleich wieder neu anlegen. Dann dürfte er auch wieder bei null anfangen.
Nur wie mache ich dies?
 
Stimmt natürlich, wenn noch ein Index enthalten ist, dodurch mehrere Tabellen zusammen hängen, ist es schwer. Versuch doch einfach mal:


ALTER TABLE tbl_name AUTO_INCREMENT = 1;

Damit sollte der Counter auf den momentan max. Wert gesetzt werden.
Also nur ein bedingtes zurücksetzen, ob das dein Problem beseitigt weiß ich nicht genau
 
Hi,

sieht gut aus - aber es tut sich nicht.
Gibt es vielleicht noch einen anderen Befehl der mir den AUTO_INCREMENT-Wert auf "1" zurücksetzen kann?
 
TRUNCATE löscht leider erst seit MySQL 5 auch den Auto_Increment.

Was mir spontan einfällt:
Das Tabellenfeld löschen und danach wieder einfügen, mit den gleichen Attributen.
 
Zurück