MySQL动态修改varchar长度的方法

作者:mrr 时间:2024-01-17 22:27:10 

虽然这种情况不应该发生,通常像我们关系型数据库,我们应该是事先设计好,以后不能改动,但是由于之前工作的疏忽,其实说实话,也不仅仅是我个人的疏忽,主要是沟通上的原因,当然数据库毕竟是我设计的,所以,还是自我批评一下。

说一下情况:MySQL字段有个varchar值字段设置的太短了,设置了30个,(我依稀记得varchar是可扩展的,当然现实并不容忍我的依稀),所以我只能找一个方法在保证数据库数据不变的情况下,动态修改varchar字段的长度,找了一段时间,终于让我找到了。


alter table 表名 modify column 字段名 varchar(数量);

这个功能还是比较强大的,但是还是提醒大家最好设计的时候就不要出现这种问题啊。

PS:mysql中的设置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长度的方法网站的支持

标签:mysql,修改,varchar,长度
0
投稿

猜你喜欢

  • Date对象格式化方法

    2009-11-16 13:17:00
  • Python爬豆瓣电影实例

    2022-03-22 20:03:12
  • 详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本

    2023-07-30 10:18:13
  • python提取照片坐标信息的实例代码

    2023-06-01 16:37:10
  • java实现的连接oracle/mysql数据库功能简单示例【附oracle+mysql数据库驱动包】

    2024-01-14 11:26:55
  • Tensorflow 模型转换 .pb convert to .lite实例

    2023-08-13 05:19:04
  • tensorflow使用freeze_graph.py将ckpt转为pb文件的方法

    2023-01-31 15:31:05
  • Python爬虫爬取煎蛋网图片代码实例

    2023-08-17 07:10:38
  • python实现简单socket程序在两台电脑之间传输消息的方法

    2021-04-25 21:14:26
  • 谈一谈数组拼接tf.concat()和np.concatenate()的区别

    2023-01-19 22:15:36
  • Matplotlib中rcParams使用方法

    2022-12-14 03:41:46
  • pandas创建DataFrame的方式小结

    2021-10-25 13:26:23
  • FrontPage 2002应用技巧四则

    2008-08-17 10:57:00
  • 算法系列15天速成 第十四天 图【上】

    2023-02-09 22:30:25
  • python爬虫获取新浪新闻教学

    2021-10-13 11:15:41
  • Python3.4学习笔记之常用操作符,条件分支和循环用法示例

    2021-08-24 03:06:43
  • 在Pycharm中使用GitHub的方法步骤

    2021-04-27 04:46:48
  • Python利用OpenCV和skimage实现图像边缘检测

    2023-01-27 01:08:43
  • pip search报错问题及解决

    2022-12-20 23:33:12
  • Go语言单元测试超详细解析

    2024-04-28 09:12:20
  • asp之家 网络编程 m.aspxhome.com