2013-07-05 8 views
17

In meiner Tabelle I Autoinkrement-ID haben, die wie 1 bis 66.440 und nächste Nummer seine Nummer aufweist, ist 88846790 + Zuwachs von hier bis 88846900.ändern Autoindex-Nummer Mysql

Es gibt keine Aufzeichnungen zwischen 66.440-88.846.790

ich meine nächste Autoinkrement Zahl wollen 66441 sein, aber seine 88.846.791 nehmen, können Sie mir helfen zu 66441 nächsten Autoinkrement bei der Einrichtung,

+2

Für alle zukünftigen Besucher dieser Frage: Versuchen Sie niemals, einen automatischen Inkrementwert niedriger als die größte ID in der Tabelle festzulegen. Sie werden in Schwierigkeiten geraten, wenn Ihre Zeilen zu bestehenden Zeilen zählen und mit ihnen in Konflikt geraten. Ihre Tabelle wird wahrscheinlich Lücken in der Auto-Inkrement-Sequenz entwickeln - das ist zu erwarten und gut, der Punkt der automatischen Inkrementierung ist, dass das Feld keine semantische Bedeutung hat, so dass Lücken keine Probleme verursachen. Wenn die Gefahr besteht, dass Sie den nutzbaren Integer-Speicherbereich von 2.147.483.647 knapp verlassen, sollten Sie in Erwägung ziehen, das Feld ohne Vorzeichen oder "BIGINT" zu erstellen oder Ihre Daten neu zu erstellen (und Ihre Referenzen zu verwalten). – Jason

Antwort

19
alter table tablename AUTO_INCREMENT=664441 

sollte

+0

sein Nein, nicht seine Einnahme 88.846.791 Zahl nur –

+0

Arbeits @ Tim Dinh einen wichtigen Punkt hat, entfernen Sie alle Zeilen auto_incr-Wert> 664.440 – Satya

+0

@ Satya Ich kann diese Zahlen nicht entfernen, ich brauche es auch diese Nummer –

6

Sie ALTER TABLE verwenden können die auto_increment Wert zu ändern:

ALTER TABLE my_table AUTO_INCREMENT = 66441; 

Weitere Informationen finden Sie unter .

Denken Sie daran, alle Zeilen mit einer ID höher als 88846790

wieder einfügen Wenn Sie Zeilen entfernen Sie nicht mit einer höheren ID als 66441,

die Änderung in autoincrement nichts tut.

Beispiel:

ID Value 
---- -------- 
    1  C 
    2  A 
    4  D 
50  A 
51  C 

Wenn ich Auto ändern Schritt will 5 Ich brauche zu entfernen oder die 50 und 51 ersten wieder einzufügen. Denn sonst wird das nächste automatische Inkrement sowieso 52 sein.

Je nachdem, wie viel und wie wichtig die Daten, die oft das Beste, was zu tun ist: Nichts

Da diese primäre ID Beziehungen zu anderen Reihen haben, und vielleicht sogar web- Urls basierend opn diesen IDs . Dies wird alles scheitern, es sei denn, Sie erstellen eine Art von Skript.

+0

Nein, es funktioniert nicht nehmen 88846791 Nummer nur –

+0

Denken Sie daran, alle Zeilen mit einer ID höher als 88846790 wieder einzufügen oder zu entfernen. Bitte lesen Sie die Antwort und versuchen Sie ... – Timmetje

+0

ja Ur richtig, so gibt es andere Möglichkeiten, dies zu erreichen ..! –

1

Sie können Autoinkrement-Feld aktualisieren ALTER TABLE

ALTER TABLE tablename AUTO_INCREMENT = 66441 
+0

Nein es ist nicht daran, ihre Einnahme 88.846.791 Zahl nur –

+0

haben Sie diese Abfrage ausführen – PSR

+0

Ja ich diese Abfrage ausführen –

1
ALTER TABLE tbl AUTO_INCREMENT = 66441; 

tun unter Verwendung Wenn Sie Datensätze nicht Ids größer als 66441 dann sollte es funktionieren.

+1

Ja, ich erwähnte in meine Frage keine Datensätze zwischen 66440 bis 88846790 –

+0

@SiddeshBhalke: dann muss und sollte es funktionieren, können Sie Ihren Feld Datentyp mit Länge posten. –

+0

@ Mahesh.D: Sicher –

3

Sie können wie unter Befehl ALTER TABLE verwenden,

ALTER TABLE tablename AUTO_INCREMENT = 66441 
1

ich Mühe hatte, diese immer in phpMyAdmin zu arbeiten, auch die Abfrage direkt eingeben. Wenn Sie die Tabelle durchsuchen, für die Sie den Index zurücksetzen möchten, und dann auf Operations klicken, sollten Sie die AUTO_INCREMENT direkt unter Table options einstellen können. Dann klicken Sie einfach auf Go und Sie sind fertig!

0

Ich mag zu verwenden:

ALTER TABLE tablename AUTO_INCREMENT=1 

Seitdem der Motor sowieso es die niedrigsten verfügbaren Wert.