Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 05. Februar 2013 11:42
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
MySQL Felder aufsteigend neu füllen
Hallo,
da dies nichts mit CMSms zu tun hat, aber hier sicher jemand ist, der es weiß, stelle ich die Frage einfach mal am Stammtisch:
Bei einem Kunden läuft eine Faktura-Software auf MySQL-Basis. Nun sollen sämtliche, bisher willkürlich vergebene, Kundennummern zurückgesetzt werden auf 10001 fortlaufend.
Das Feld in der Datenbank habe ich schon gefunden und es ist auch nicht der Primärschlüssel. Ich habe auch bei CMSms oder anderen Systeme immer mal wieder Arbeiten direkt an der Datenbank vorgenommen - in der Regel suchen und ersetzen.
In diesem Fall wäre wahrscheinlich das hier gar nicht so falsch:
[== SQL ==]
UPDATE tabellenname SET spaltenname=wert
Allerdings soll ja nicht jeder die selbe Nummer bekommen sondern eben aufsteigend von 10001 bis hin zum letzten Datensatz. Ich habe nur etwas gefunden, was den aktuellen wert einfach um z.B. 1 erhöht. Aber es sollen eben alle Werte neu und gleichzeitig aufsteigend gesetzt werden.
Gibt's da einen direkten Weg/Befehl?
Offline
#2 05. Februar 2013 12:05
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.931
- Webseite
Re: MySQL Felder aufsteigend neu füllen
Das könnte mit einer while Schlaufe funktionieren:
http://msdn.microsoft.com/de-de/library/ms178642.aspx
set @i = 10001
WHILE (SELECT ID FROM TABLE) > 0
BEGIN
UPDATE TABLE as T SET NR = @i where T.ID = TABLE.ID
set @i = @i+1
END
--> Ungetestet, einzig mal ein Lösungsansatz
Eine andere Lösung ist natürlich das ganze mit einem PHP Script zu schreiben.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 05. Februar 2013 12:51
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: MySQL Felder aufsteigend neu füllen
Wenn die IDs Integer sind, so bleiben können, eineindeutig sind und lediglich in auto_increment Felder und primary Keys geändert werden sollen, würde ich es so machen:
http://stackoverflow.com/questions/2514 … r-the-fact
Wenn die IDs neu generiert werden sollen, würde ich die Tabelle ohne IDs exportieren und in eine neue Tabelle, bei der die ID als integer, auto_increment und primary key definiert ist, wieder importieren.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#4 07. Februar 2013 13:49
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
Re: MySQL Felder aufsteigend neu füllen
Hi,
Danke für die Hinweise. Nach langen Experimenten hat leider nichts funktioniert - irgendwo scheint es doch noch eine Verknüpfung zu geben, die ich nicht finden kann.
Werd mal den Entwickler anschreiben. Irgendwie muss es ja gehen.
Offline
Seiten: 1