MySQL动态修改varchar长度的方法
虽然这种情况不应该发生,通常像我们关系型数据库,我们应该是事先设计好,以后不能改动,由于之前工作的疏忽,其实说实话,也不仅仅是我个人的疏忽,主要是沟通上的原因,数据库毕竟是我设计的,所以,还是自我批评一下。
说一下情况MySQL字段有个varchar值字段设置的太短了,设置了30个,(我依稀记得varchar是可扩展的,现实并不容忍我的依稀),所以我只能找一个方法在保证数据库数据不变的情况下,动态修改varchar字段的长度,找了一段时间,终于让我找到了。
alter table 表名 modify column 字段名 varchar(数量);
这个功能还是比较强大的,还是提醒大家最好设计的时候就不要出现这种问题啊。
PSmysql中的设置varchar长度问题
如果某一项中设置的是varchar(50)
那么对英文是50
那么对中文呢
utf-8的中文占3个字节
那么,这个varchar(50)是不是只能存16个汉字了?
mysql varchar(50) 不管中文 还是英文 都是存50个的
MySQL5的文档,其中对varchar字段类型这样描述varchar(m) 变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节)。
为何会这般变换?真是感觉MySQL的手册做的太不友好了,因为你要仔细的继续往下读才会发现这段描述MySQL 5.1遵从标准SQL规范,并且不删除VARCHAR值的尾部空格。VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节。
好了,貌似懂了一点。但具体他说的长度大于255时使用2个字节长度前缀,小学减法题65535 - 2 = 65533啊。不知道这些大牛如何计算的,暂且保留疑问吧?
注我测试了一下使用UTF8编码,varchar的最大长度为21854字节。
在mysql 5.0.45版本,数据库编码utf8下进行测试varchar最长定义为21785。也就是说不论字母、数字、汉字,只能放21785个。
推想varchar字节最大65535,utf8编码一个字符3个字节65535/3=21785。
以上所述是长沙网络推广给大家介绍的MySQL动态修改varchar长度的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程