At 10:19 PM 7/9/2002, you wrote:
>I am using MySql with InnoDB and have just discovered
>that tables created using char types show up as
>varchars when I type, describe tableName.  Previously,
>I was using MyIsam tables and did not see char types
>being changed to varchars so I am a bit puzzled.
>
>This is true for almost all of the tables I've
>created, only a couple of tables retained the char
>type as specified in my create table script.
>
>Is this documented behavior?  I haven't been using
>MySql very long and haven't seen it mentioned
>anywhere.
>
>--Michael

Michael,
         Do not panic, this is normal for MySQL. If you have at least one 
VarChar field in your table, then they will all be set to VarChar. If you 
want to change them back to Char(x), then you need to change them all at 
once using a single Alter Table command. You could also try MySQLFront or 
MySqlMgr. See section 6.5.3.1 Silent Column Specication Changes.

Here is an excerpt from the manual:
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 aect how you use the columns in any way; in MySQL, VARCHAR is just
a dierent way to store characters. MySQL performs this conversion because 
it saves
space and makes table operations faster.


Mike


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to