注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

老狗的博客

尽管每一步都很微小,但我确认我在进步

 
 
 

日志

 
 
关于我
sky

认真生活,努力工作 热爱技术,关注DB,存储,分布式,中间层,java,c++,php

网易考拉推荐

mysql varchar类型总结  

2012-05-22 20:57:57|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

摘自:mysql 5.0文档

Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. The effective maximum length of a VARCHAR in MySQL 5.0.3 and later is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used

在mysql 5.0.3之前,varchar的长度只能从0到255
在5.0.3和以后版本,varchar的长度可以从0到65535
但是要受到最大(row size)的限制, 默认为65535字节,即所有的列加起来大小不能超过这个限制

在mysql 5.0.45中进行测试:
mysql varchar类型总结 - sky - 老狗的博客
 
可以看到在采用gbk字符集的情况下,在定义表的时候,定义varchar(32762)是可以的,但是定义varchar(32763),
就会报错误1118,row size too large的问题,如果定义到40000,则就会将varchar转化为mediumtext

mysql> show variables like '%mode%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_mode      |       | 
+---------------+-------+
1 row in set (0.00 sec)


testvarchar8表:

Create Table: CREATE TABLE `testvarchar8` (
  `a` int(10) unsigned NOT NULL auto_increment,
  `b` int(11) default NULL,
  `c` varchar(32762) default NULL,
  PRIMARY KEY  (`a`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk

构造出一个7000字节的字符串插入testvarchar8表中:
在test.txt中包含了这么一个字符串insert into testvarchar8(c) values('');
mysql> source /home/mydb/test.txt
Query OK, 1 row affected, 1 warning (0.03 sec)

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'c' at row 1 | 
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

在Php中编程测试,如果sql_mode没有设置,执行mysql_query,扑捉不到error
  评论这张
 
阅读(498)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018