|
Posted by Philip Hallstrom on 10/20/64 11:16
> On Wed, May 18, 2005 11:15 am, tony yau said:
>> Hi all,
>>
>> I try to do the following:
>>
>> CREATE TABLE IF NOT EXISTS Invoice(
>> PKey INTEGER,
>> Received DATETIME,
>> Cost DECIMAL(10,2),
>> FileName VARCHAR(50),
>> RefNum CHAR(10),
>>
>> PRIMARY KEY (PKey)
>> ) TYPE=MyISAM COMMENT='Invoice Data';
>>
>> but it keep generating RefNum VARCHAR(10) instead of CHAR(10)
>>
>> I don't understand, please help (or point me to RTFM page)
>
> WILD GUESS!!!
>
> In *some* impelementations of SQL, the performance benefit of CHAR over
> VARCHAR is lost after the first VARCHAR column.
That's exactly it...
http://dev.mysql.com/doc/mysql/en/silent-column-changes.html
If any column in a table has a variable length, the entire row becomes
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 Chapter 14, MySQL Storage
Engines and Table Types.
Navigation:
[Reply to this message]
|