关于MySQL一个CHAR类型问题
今天接到一个同事的问题,需要修改某表的一个字段,需要把VARCHAR(15)改成CHAR(15)类型,但是修改不成功,软件版本是MySQL 4.0.27。首先,我第一个想法是不可能!就用我的本本上的MySQL4.1测试了一下,果然是不行,即使你建立新的表结果指定了CHAR类型还是无济于事。(这种情况在MySQL5.0上是不会发生的)后来我查了MySQL4.1的手册才明白,由于MySQL在存储数据方面设计,如果表内含有两个以上的变长字段(例如VARCHAR,TEXT,BLOB),CHAR类型会自动转成VARCHAR类型(当长度小于4个字节的时候不会改变)这里的操作是隐式操作的。之所以这么做,想必MySQL是为了节约存储空间提高执行效率吧。