Wie kann ich ein automatisches Inkrementieren einer MySQL-Tabelle in phpMyAdmin auf 1 zurücksetzen?

19

Ich weiß, dass ich in MySQL in der Befehlszeile das Auto-Inkrement-Feld einer Tabelle folgendermaßen auf 1 zurücksetzen kann:

ALTER TABLE tablename AUTO_INCREMENT = 1

Ich bin neugierig, ob es einen Weg gibt, dies aus phpMyAdmin heraus zu tun. So etwas wie ein Kontrollkästchen zum Zurücksetzen des automatischen Inkrements oder etwas anderes in dieser Richtung?

Nicht, dass irgendetwas mit dem Kommandozeilenansatz nicht stimmt. Weitere dieser neugierigen Dinge, über die ich immer wieder nachdenke ... Vielen Dank im Voraus!

BitBug
quelle

Antworten:

19

phpmyadmin

Vielleicht können Sie einfach die Registerkarte phpMyAdmin-Operationen auswählen:

  • Klicken Sie in phpMyAdmin auf die Tabelle, die Sie zurücksetzen oder den AUTO_INCREMENT-Wert ändern möchten
  • Klicken Sie auf die Registerkarte Operations
  • Suchen Sie im Feld Tabellenoptionen das Feld auto_increment.
  • Geben Sie den neuen Startwert für auto_increment ein
  • Klicken Sie auf die Schaltfläche Los für das Feld Tabellenoptionen.

Da dies eine der am häufigsten gestellten Fragen für phpmyadmin ist, können Sie in diesem Blog mehr darüber erfahren: http://trebleclick.blogspot.com/2009/01/mysql-set-auto-increment-inphpmyadmin.html

Ergänzende Info

Bei einer leeren Tabelle kann das Attribut auto_increment auch durch Ausführen zurückgesetzt werden

TRUNCATE TABLE mydb.tablename;

Führen Sie dies nicht aus, wenn Sie Daten enthalten. Wenn Sie die Daten abspritzen wollen, dann seien Sie mein Gast.

Klicken Sie in phpmyadmin einfach auf die SQLRegisterkarte, geben Sie den Befehl ein und führen Sie ihn aus.

Für eine nicht leere Tabelle möchten Sie möglicherweise das Attribut auto_increment an die höchste vorhandene ID anpassen, die verwendet wird, wenn höhere Einträge gelöscht wurden.

Optimieren Sie zunächst die Tabelle

OPTIMIZE TABLE mydb.mytable;

Suchen Sie als nächstes den höchsten Wert für die auto_increment-Spalte (sagen wir, es ist id)

SELECT MAX(id) maxid FROM mydb.mytable;

Angenommen, die Antwort gibt 27 zurück. Wechseln Sie zur Registerkarte Vorgänge, und geben Sie 28 ein.

RolandoMySQLDBA
quelle
+1 für abgeschnitten, ich habe gelöscht und neu erstellt.
McKenzm
@mckenzm Unter der Haube wird TRUNCATE TABLE gelöscht und neu erstellt ( dev.mysql.com/doc/refman/5.6/en/… )
RolandoMySQLDBA
@mckenzm Ich habe gerade dein Profil gelesen. 25 Jahre COBOL ??? Du arme gequälte Seele.
RolandoMySQLDBA
TBH war es wahrscheinlich 13 x die gleichen zwei Jahre ... und vieles davon war einfach, die Embedded SQL, Command Level CICS, VMS-Systemaufrufe ... Vorverarbeitete Makros. Lego Zeug.
McKenzm
11

Als Ergänzung zu den anderen Antworten würde ich einen visuelleren Ansatz bevorzugen:

  1. Klicken Sie auf die Tabelle, die Sie ändern möchten.

  2. Klicken Sie auf Operations:

Bildbeschreibung hier eingeben

  1. Schauen Sie unter " Tabellenoptionen ":

Bildbeschreibung hier eingeben

Beachten Sie auch, dass:

–§–   Sie können den Zähler nicht auf einen Wert zurücksetzen, der kleiner oder gleich dem aktuell verwendeten Wert ist. Wenn sowohl für InnoDB als auch für MyISAM der Wert kleiner oder gleich dem aktuell in der AUTO_INCREMENTSpalte vorhandenen Maximalwert ist, wird der Wert auf den aktuellen maximalen AUTO_INCREMENTSpaltenwert plus eins zurückgesetzt.

Pacerier
quelle
1
Ich benutze immer noch phpMyAdmin 4.0.1-rc1. Ich denke, es ist zu alt, da ich auf dieser Seite keine AUTO_INCREMENT-Option habe.
Kar.ma
-2
SET @num := 0;
UPDATE tablename SET id = @num := (@num+1);
ALTER TABLE tablename AUTO_INCREMENT = 1;
Areonus
quelle
2
Und was ist mit all den zugehörigen Daten?
Colin 't Hart