Mailinglisten-Archive |
On 23-Oct-2000 richard.schuelein_(at)_mako.de wrote: > Hallo, > > ich habe eine Datenbank, die ich von Access nach mysql exportiert habe. In > den verschiedenen Tabellen gibt es einige Felder, die in den Typ VarChar > konvertiert wurden. Da in diese aber ein String fester Länge (20 Zeichen) > eingefügt werden soll und dieser aber am Ende Leerzeichen enthält möchte ich > für diese VarChar-Felder den Datentyp Char. Ich ändere durch folgenden > SQL-String diesen Datentyp: > > ALTER TABLE Bestellungen MODIFY Artikelnummer CHAR(20) > > Wenn ich danach aber in die Tabellestruktur schaue, ist das Feld > Artikelnummer immer noch vom Typ VarChar! > Wenn ich folgenden SQL-String ausführe, dann geht es aber! > > ALTER TABLE Bestellungen MODIFY Artikelnummer CHAR(1) > > Wo liegt mein Problem? Daran, das MySQL speicherplatz sparen will: Kapitel 7.7.1 des Manuals, Silent Column Specification Changes: If any column in a table has a variable length, the entire row is variable-length as a result. Therefore, if a table contains any variable-length columns (VARCHAR, TEXT, or BLOB), all CHAR columns longer than three characters are changed to VARCHAR columns. This doesn't affect how you use the columns in any way; in MySQL, VARCHAR is just a different way to store characters. MySQL performs this conversion because it saves space and makes table operations faster. See section 8 MySQL table types. Wie du oben schon gesagt hast, ist die Tabelle variable-length ... also wird MySQL das auch so machen. Michael -- Michael Bergbauer <michael.bergbauer_(at)_gmx.net> Use your idle CPU cycles. See http://www.distributed.net and win $ 1 000. Visit our mud Geas at geas.franken.de Port 3333 --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive