在作数据库设计时,偶然疏忽将一个对象的ID设成了int(1)的数据类型,系统跑了一段时间,ID都涨到几万了,竟然没出现问题,在作设计review的时候才发现这个问题。还真是奇怪,int(1)的逻辑跟varchar(1)的逻辑不同吗???
分析:对于int型,永远须要占用4个字节,默认就是11位;而指定的长度称做显示宽度,mysql中column定义中有个叫zerofill的属性,当该属性设置为true时,则int型后面的长度就起做用了。当int值不满指定长度时,则显示时前面会自动补0,如int(6)的值为11,则显示为000011,要注意跟varchar(16)做区分。