Hallo Sven,
Falsch. MySQL macht aus varchar-Feldern char-Felder. Es wird immer
die maximale Laenge gespeichert. Das hat uebrigens auch ganz
konkrete Gruende und wird auch in anderen RDBMS (z. B. PostGreSQL)
getan: nimmt man fuer ein Feld eine variable und nicht feste
Laenge, kann die Position eines Datensatzes nicht mehr in einem
Zug berechnet werden, sondern braucht linear viele Zuege. Bitte
lies es im Sourcecode nach, wenn du mir das nicht glauben
solltest. Ich habe das bereits getan.Dann ist die Doku unter
http://dev.mysql.com/doc/mysql/en/CHAR.html also falsch?
Wenn sie von Version 3 zu 4 das Verhalten nicht ganz gewaltig
geaendert haben, ja.
Tatsaechlich kennt MySQL keine char-Felder und verhaelt sich auch
in diesem Fall fehlerhaft.Moment. Oben sagst du, MySQL kenne keine VARCHAR-Felder, sondern
mache daraus immer CHAR, und jetzt ist es genau umgekehrt?
Irgendwie klingt das konfus.
Es gibt einen Unterschied zwischen interner und externer Darstellung.
Intern wird nur fixed width verwendet, extern nur variable width.
Intern gibt es nur char, extern nur varchar.
Der Standard sagt, dass Char-Felder aufgefuellt werden muessen.
MySQL tut dies nicht.Naja, der "Standard" interessiert viele DB-Hersteller nicht so
richtig. :)
Leider.
Grüße,
CK