日期:2014-05-16  浏览次数:20746 次

关于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是为了节约存储空间提高执行效率吧。
1 楼 hifun 2008-08-09  
为什么会
需要把VARCHAR(15)改成CHAR(15)类型
呢?

不懂。这两个字段的区别很大吗?
就是一个是变长的,一个是固定长度的区别吧?
这个不也可以用别的方法来检查限制的么。
真的搞不懂。