1#
大 中
小 发表于 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要求旧的格式。
学会怎么调试程序,学会怎么设计模式,学会怎么配置环境,学会怎么带项目,学会怎么分析客户需求
|