发新话题
打印

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

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

TOP

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

TOP

顶老黑。。。说的 太好了
世界极静  只有灵魂独舞--------世界上没有任何事可以替代坚持。

我们都需要论坛 论坛也同时需要我们的支持

TOP

还没怎么关注过这个东西
学习一下
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

很少有人遇到这种问题,一般如果要升级数据库的话,你可以把数据导成,向下向上兼容的sql语句!
等我挣了100万我就找个人娶了!哈哈!

TOP

发新话题