扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、mysql中修改字段长度:
小店网站建设公司创新互联建站,小店网站设计制作,有大型网站制作公司丰富经验。已为小店上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的小店做网站的公司定做!
ALTER TABLE tb_article MODIFY COLUMN NAME VARCHAR(50);
这里的tb_article为表名,NAME为字段名,50为修改后的长度
2、mysql修改字段类型:
ALTER TABLE tb_article MODIFY COLUMN NAME CHAR(50);
修改后,name字段类型由varchar变为char
3、mysql中增加列:
ALTER TABLE tb_article ADD COLUMN name1 VARCHAR(30);
4、mysql中修改列 :
ALTER TABLE tb_article CHANGE name1 name2 VARCHAR(30);
5、mysql中删除列 :
ALTER TABLE tb_article DROP COLUMN name2;
char: 是定长格式的,长度范围是0~255. 想要储存一个长度不足255的字符时,MySQL会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。
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。
如果你表中已经设为自增长了,还调什么,取决于当时建表时你所选的数据类型
你这样做下试试
set IDENTITY_INSERT 表名 ON
找到最大号,用语句插入数据插数据
SET IDENTITY_INSERT 表名 OFF
再用语句把插入的数据删除
如果还不行的话,有一个想法,根据原表的建表语句,再建一个新表,定义identity属性时注意数据类型后不要加长度限制,建好表后把原表中的数据插入新建表中,再把原表删除,把新建表改名称。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流