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?
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
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.
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.
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.
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.