[Mysql]Id ändern?

wenn sie schon vorher eindeutig war
Code:
update tabellennamen set id = neueid where id = alteid
wenn sie nicht eindeutig war noch ein
Code:
and anderespalte = wert and nocheinaspalte = wert
dranhängen.

MfG respawner
 
du musst aber bedenken, wenn du z.b. die IDs
1
2
3
4
6
hattest un du änderst 6 in 5, dass der nächste Wert dann trotzdem 7 sein wird.
Wenn du den 6er aber z.B. in 10 änderst, wird der nächste Wert 11 sein.
Solltest du den Maximalwert erreichen, weil du z.b. meinst eine ID auf 2147483647 (maximaler Wert beim signed int), dann wird er versuchen wieder diesen maximalen Wert zu speichern, was nicht klappt.
Du kannst den Auto_incrementwert aber wieder setzen mit
ALTER TABLE Tabelle AUTO_INCREMENT = 100; (siehe https://dev.mysql.com/doc/refman/5.1/de/example-auto-increment.html)

Der Wert muss aber höher als die höchste ID sein, also musst du davor den 2147483647er ändern.

MfG respawner
 
Hi, wie kann ich die Id eines Datensatzes in mysql im Nachinein noch ändern?
Mir stellt sich eher die Frage, warum du das machen willst ?

Die ID ist zu 99,999% der PRIMARY KEY. Und an dem sollte man eigentlich nicht rumspielen, weil der auch Fremdschlüssel in einer anderen Tabelle sein kann.

Dass alle IDs schön ohne Lücke aufsteigend sind, muss nämlich nicht sein.
Solltest du den Maximalwert erreichen, weil du z.b. meinst eine ID auf 2147483647 (maximaler Wert beim signed int), dann wird er versuchen wieder diesen maximalen Wert zu speichern, was nicht klappt.
Ergänzend:
Ich dachte mal und bin clever und hab ein Auto-Increment-Feld auf -1 gestellt. Dann stellt MySQL Auto-Increment ebenfalls auf 2147483647 um und nix geht mehr :mrgreen: