smallint(3)和smallint有什么区别?为什么带符号的范围都是-32768到32767?他们到底有什么区别?如果没有区别为什么很多开源的系统要定义smallint(3)而不是smallint?

解决方案 »

  1.   

    我觉得应该是限制输入的字符长度
    比如:
    字段A smallint(3)     输入-999~999不会出问题,不在此范围的会报错
    字段B smallint       这个话只要不超过起现在的范围是不会出问题的
      

  2.   

    默认值,你可以自己建个表只写smallint,最后导出会发现变成smallint(3),此处的3不表示范围,而是zerofill的长度,你如果设置了zerofill那么结果是001,002,003
      

  3.   

    sorry,刚才弄错了,smallint默认不是3,3也不仅仅用于zerofill的长度,刚才查了一下手册,又测试了一下,如果你的数据不超过3位,会在前面补上空格直道3位,若设置了zerofill则会把空格换成0
      

  4.   

    没有本质区别(3) 仅表示显示的长度,并不改变 smallint 字段的长度