phpbar.de logo

Mailinglisten-Archive

RE: VarChar und Char
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: VarChar und Char




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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive