PHP视频教学,让你更快更轻松的掌握PHP。

查看完整版本: VARCHAR为什么有时超过255时对,有时不对

极品黑公子 2008-5-13 17:29

VARCHAR为什么有时超过255时对,有时不对

在MySQL5.0.3 之前的版本中,一个指定长度大于255 的CHAR 或VARCHAR 列会被转换成TEXT 类型来保存给定的长度。例如,VARCHAR (500 )会被转换成TEXT ,而VARCHAR (200000 )会被转换成MEDIUMTEXT 。注意这个转换将导致对尾部空间的处理。

从MySQL5.0.3 开始,一个指定长度大于255 的CHAR 或VARCHAR 列不会被沉默的转换。而会引发一个错误。从MySQL5.0.6 开始,如果不及或严格SQL 模式对指定长度大于65,535 的VARCHAR 和VARBINARY 的沉默转换不会发生。而是引发一个错误。

---------

降级到旧版本的方法
MySQL/InnoDB中,InnoDB表使用更紧凑的存储格式。在以前版本的MySQL中,InnoDB记录包含一些冗余信息,例如列数目和每个列的长度,即使对于固定大小的列。默认情况,创建的表为紧凑格式(ROW_FORMAT=COMPACT)。如果想要降级旧版本的MySQL/InnoDB,可以用ROW_FORMAT=REDUNDANT要求旧的格式。

libaiyi 2008-5-13 20:08

没注意,一般都没用这么大!但是说得很好。

lipeng8821 2008-5-13 20:26

:53: 顶老黑。。。说的 太好了

robin 2008-5-14 08:30

还没怎么关注过这个东西
学习一下

leo 2008-5-14 08:33

很少有人遇到这种问题,一般如果要升级数据库的话,你可以把数据导成,向下向上兼容的sql语句!
页: [1]
查看完整版本: VARCHAR为什么有时超过255时对,有时不对