在使用mysql的过程中,总会遇到或大或小的问题,今天这个问题是关于mysql的字段限制的。下面我们一起来看看如何解决。
工具/原料
mysql5.7
方法/步骤
1、如下面图中所示,为了演示今天题目中可能出现的问题,我这里创建了一张测试表t1,里面有两个字段id和name,字段类型分别是int和varchar(8),varchar(8)表示字段name是一个字符串类型,长度是8.
2、这个时候往表t1里面插入一对比较小的数值和字符串的时候,不会报错,能插入成功,且表里可以看到插入的值,如下面图中所示:
3、但是向里面插入更长的字符串的值的时候,就开始报错了。如下面图中所示:插入一个长度远大于name字段长度的字符串。会报datatoolong的错误。这就说明受到了字符串长度的限制。从表中查询也无法查询到刚才插入的值。
4、要想解除字符串长度的限制,我们就需要将字符串的长度改为更大的值。如下面表中所示:不同类型的字符串可以用来表示不同长度的字符。
5、因此,我们使用修改命令将name字目愿硅囫段修改为更大的值,修改表字段的命令基本格式是:altertabletable_namemodify艘早祓胂columncolumn_nametype;我们这里要将name字段修改为更大长度,比如20个字符。那么命令就是:altertablet1modifycolumnnamevarchar(20);如下面图中所示,修改完成后,再往表中插入上一次操作的字符串,就不会报错了。
6、然后在表中查询对应的值,就能看到插入的新值。能够表示对应的长度。但是当我们再次尝试插入更大的值时,还是会报错。所以大家根据自己的需求,为字段设置合适的长度。避免字段受长度限制。
7、最后我们还要说一下,当字段长度比较戚忤潘傣长时,从长字段改为短字段的问题。比如刚才我们已经插入了一个大于8位的字符。然后我们尝试将这个字者憨骆吒段的长度改回8位。如下面图中所示,可以看到会直接报错。提示你name字段第二行会被截断。表中的数值也未被修改。因此遇到这种情况时,一定要慎重操作。