Auto_increment wert läßt sich nicht ändern

Es gibt doch etliche Posts zu dem Thema, die Fortlaufende Kundennummern auf einen bestimmten Wert zu “setzen”.
Beim dem Punkt den auto_increment Wert in oxuser entsprechend zu ändern ist bei mir Ende, da sich der Wert zwar ändern, jedoch nicht speichern lässt. Beim Bestätigen mit OK ändert sich der Wert wieder auf den ursprünglichen.
Das ganze in PHP MyAdmin.
PS. Da ich die Nummer vom 100000 auf 1000 zurücksetzen will, reicht es nicht aus, dem letzten Kunden eine andere Kundennummer zu geben.
Habt ihr einen Tipp?

Viele Grüße aus Rhede

Hallo!

Einfach folgenden SQL-Befehl ausführen:

ALTER TABLE oxuser AUTO_INCREMENT = 1000

Viele Grüße

1.tipp auf der folgenden seite::
http://www.foxido.de/category/tipps

ALTER TABLE oxuser AUTO_INCREMENT = 1000

ist zwar richtig in mysql, aber wenn es schon Kundennummern > 1000 in der Tabelle gibt, ist die Anweisung nutzlos.
MySql legt als nächste Kundennummer die höchste Nummer + 1 an

[QUOTE=proqd;182611] … Da ich die Nummer vom 100000 auf 1000 zurücksetzen will, reicht es nicht aus, dem letzten Kunden eine andere Kundennummer zu geben.
Habt ihr einen Tipp?
[/QUOTE]

Um für neue Kunden Nummern ab 1000 zu verwenden muss man zuerst die vorhandenen Kundennummerv zurücksetzten (vorausgesetzt es sind < 1000)
-> Feld OXCUSTNR löschen
-> eine neues OXCUSTNR mit auto_increment ab 1 in phpmyadmin in der Tabelle anlegen
-> dieses Feld hat dann Nummer von 1 bis n (< 1000)
-> dann ALTER TABLE oxuser AUTO_INCREMENT = 1000 ausführen

… oder alle Kunden löschen :slight_smile:

ist zwar richtig in mysql, aber wenn es schon Kundennummern > 1000 in der Tabelle gibt, ist die Anweisung nutzlos.
MySql legt als nächste Kundennummer die höchste Nummer + 1 an

…ich bin davon ausgegangen, dass das klar ist. Muss ich nächstes mal überdenken.

Viele Grüße

[QUOTE=2fast4you;182625]

ich bin davon ausgegangen, dass das klar ist. Muss ich nächstes mal überdenken.[/QUOTE]

Na klar http://forum.oxid-esales.com/showthread.php?t=27674 :smiley:

So ganz so eindeutig scheint es nicht.

Natürlich habe ich “ALTER TABLE oxuser AUTO_INCREMENT = Wert” bereits probiert.

Nachdem ich jedoch

ALTER TABLE oxuser AUTO_INCREMENT = 1700

eingebe, wird der Befehl zwar ausgeführt, jedoch ändert sich nichts an der Kundennummernvergabe nichts. Auch steht bei Operationen immer noch der alte Wert und nicht 1700.

Ich sagte ja, ich habe die Posts gelesen und probiert. Auch jetzt noch sind meine Aktionen noch nicht von Erfolg gekrönt.

Ich weiß hier nicht weiter…

Dann ist mindestens eine Kundennummer größer als 1700. Der Befehl auto_increment zählt beim höchsten eingetragenen Wert um 1 weiter, egal was im Befehl steht, wenn dieser kleiner ist als ein vorhandener Wert.

… jedoch ändert sich nichts an der Kundennummernvergabe nichts. Auch steht bei Operationen immer noch der alte Wert und nicht 1700 …

warum machst Du es so spannend?

  • welche ‘alte Wert’ wird angezeigt?
  • ist 1700 < als ‘alter Wert’ -> dann gehts nicht

Hier nun die Fakten:
Meine aktuell höchste Kundennummer ist 100098
Grund: Zwischenzeitlich wurde versehentlich ein Testkunde mit Kundennummer 99999 angelegt,
Die Kundennummern sollen nun da fortgesetzt werden, bevor sie durch den Testkunden erhöht wurden - nämlich bei 1700.
Muss ich nun zwingend alle Kundenummern, die höher als 1700 sind, löschen oder neu vergeben - oder gibt es eine Lösung, dass bei 1700 weitervergeben werden kann, ohne die Kundennummern darüber zu ändern?!

Laut Digidesk ( Oxid Webdesigner ) muss dazu ein Modul geschrieben werden. Würde mich ca. EUR 300,- kosten!
Das würde auch bedeuten, dass alle Lösungsansätze, die man hier in vielen Posts lesen kann, nicht funktionieren.
Ein Beispiel: ALTER TABLE oxuser AUTO_INCREMENT = 1700

Sollten diese Infos nicht ausreichen, um die obige Frage zu beantworten, werde ich gerne Weitere geben.

Wenn die 99 Kunden Ihre Kundennummer behalten sollen, benötigst Du ein Modul, das nur für diese Kunden die Nummern speichert und bei Bedarf an den benötigten Stellen einsetzt. Wenn nicht, dann reicht etwas in der Art:

UPDATE oxuser
    SET oxcustnr = oxcustnr-xxxxx
    WHERE oxcustnr >= xxxxx;

Bitte bei xxxxx den Wert einsetzen, der die korrekte Kundennummer ausgibt (99999-1700)

Danach dann den Zähler runtersetzen und mit einem Stapelmodul die Rechnungen neu drucken und den Kunden zusenden.