Bei Umwandlung des Tabellentyps Daten behalten ?

megatom

Mitglied
Aloah !
Wenn ich in meiner mysql-Datenbank ein VARCHAR Feld in INT umwandel, bleiben dann die Daten (sind nur ganze Zahlen) erhalten ?
 
Hallo!

Ja und nein. ;)
Haben die Zahlen führende Nullen?
Wenn nicht, gibt es auch keine Probleme.
Wenn doch, dann hängt es davon ab, ob jeder Eintrag die gleiche Zeichenlänge hat oder nicht.

Beispiel:
Code:
Zahlen als VARCHAR mit unterschiedlicher Zeichenlänge und führender Null:
070
2
0016
 
Daraus wird bei INT mit einer Zeichenlänge von z.b. 5 Zeichen und ohne "UNSIGNED ZEROFILL":
70
2
16
 
Bei INT mit 5 Zeichen und mit "UNSIGNED ZEROFILL" wird daraus:
00070
00002
00016
Das Ergebins ist also unterschiedlich und könnte evtl. nicht zum gewünschtem Erfolg beim auslesen führen.

Gruss Dr Dau
 
Hallo !
Alle Einträge haben dieselbe Länge (20) können aber führende Nullen enthalten.
Am geeignetsten wäre für mich eigentlich ein Binärfeld, aber das gibt es ja nicht.
Also im Prinzip sollten alle Daten erhalten bleiben...?
 
Wenn wirklich alle Einträge gleich lang sind und teilweise führende Nullen haben, musst Du bei INT auch UNSIGNED ZEROFILL mit angeben.

Ansonsten könntest Du auch VARBINARY nehmen, 20 Zeichen sind für BINARY zu viel.

Aber warum erstellst Du Dir nicht vorher ein SQL-Dump?
Dann könntest Du so viel Du willst rumprobieren und im Zweifelsfall die Datenbank mit dem SQL-Dump wieder herstellen.
 
Aloah !
Danke.
VARBINARY war mir unbekannt. (mysql 4 ?)
Ja Dump sowieso, aber dummerweise ist das die Tabelle mit allen User Daten...
 
Zurück