+ -
当前位置:首页 → 问答吧 → Myql 中 smallint(3)和smallint范围都一样,到底有什么区别?

Myql 中 smallint(3)和smallint范围都一样,到底有什么区别?

时间:2009-11-24

来源:互联网

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

作者: szjunjun   发布时间: 2009-11-24

应该是限制长度的吧

作者: chenhan99   发布时间: 2009-11-24

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

作者: dzxccsu   发布时间: 2009-11-24

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

作者: Siramizu   发布时间: 2009-11-24

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

作者: Siramizu   发布时间: 2009-11-24

没有本质区别

(3) 仅表示显示的长度,并不改变 smallint 字段的长度

作者: jom_ch   发布时间: 2009-11-24

刚刚好遇到这个问题

作者: wiskeyjohn   发布时间: 2011-08-06

学习了。

作者: happypiggy2010   发布时间: 2011-08-06

热门下载

更多