2009-09-25 12 views
25

Jedes Mal, wenn ich einen Eintrag zu meiner Datenbank hinzufüge, wird der Wert für den automatischen Inkrement automatisch um 1 erhöht. Allerdings ist es nur bei einem Wert von 47. Also, wenn ich einen neuen Eintrag hinzufügen, wird es 48 sein, und dann ein anderer 49 usw.Ändern der aktuellen Anzahl eines Auto Increment-Werts in MySQL?

Ich möchte ändern, was der aktuelle Zähler Auto Increment ist . I.e. Ich möchte es von 47 auf 10000 ändern, so dass der nächste eingegebene Wert 10001 ist. Wie mache ich das?

Antwort

69

Sie können ALTER TABLE verwenden den Wert einer AUTO_INCREMENT -Spalte zu setzen; die Seite zu zitieren:

Um den Wert des AUTO_INCREMENT Zählers zu ändern, für neue Zeilen verwendet werden, dies tun:

ALTER TABLE t2 AUTO_INCREMENT = value; 

Es gibt auch eine Notiz, dass:

Sie können den Zähler nicht auf einen Wert zurücksetzen, der kleiner oder gleich dem Wert ist, der bereits war benutzt.
Für MyISAM, wenn der Wert kleiner als oder gleich den maximalen Wert in der AUTO_INCREMENT Spalte ist der Wert zurückgesetzt auf den aktuellen maximalen plus eins.
Bei InnoDB tritt kein Fehler auf und der aktuelle Sequenzwert wird nicht geändert, wenn der Wert kleiner als der aktuelle Maximalwert in der Spalte ist.

Hoffe, das hilft!

+1

lösen Ich mag würde zu erwähnen, dass Sie 'AUTO_INCREMENT' nur in eine konkrete Nummer ändern können. Ausdrücke sind nicht erlaubt. Ich habe versucht, einige Werte durch "ALTER TABLE t2 AUTO_INCREMENT = + Wert" und "ALTER TABLE t2 AUTO_INCREMENT = AUTO_INCREMENT + Wert" zu "überspringen", aber beide führten zu einem Fehler, der ein wenig seltsam erschien. MySQL-Version '5.6.33' – mrun

+0

Ich versuche dies, aber arbeite nicht –

12

Siehe Handbuch für ALTER TABLE - das sollte es tun:

ALTER TABLE [tablename] AUTO_INCREMENT = [number] 
7

Sie können das

durch die folgende Anweisung ausführen zu erledigen
ALTER TABLE t2 AUTO_INCREMENT = 10000; 

Also das nächste Auto Increment Schlüssel aus dem 10001.

beginnen werde ich diese Hoffnung wird das Problem

+7

Warum wiederholst du eine bereits gegebene Antwort und hast einen Spam-Link eingefügt? Bitte tu das nicht. Eine Begrüßung ist nicht nötig (Ihr Name erscheint bereits unter dem Beitrag) und Spamming auch nicht (einfach in Ihr Benutzerprofil eintragen). – BalusC

Verwandte Themen