MySQL int(M) 中 M 的作用

在数据库设计时,我们经常会这样设置 int(M)

⚠️ 误区大部分人把这个 M 当做能够存储多少位的数据,其实不然,这个M表示的是“显示宽度”。

使用场景:在前端的要显示一个 integer 类型的数据,数据库里设置对应的数据类型 int(4),但是写入的数据不足 4 位时,那么就会在左侧填充空格(如果开启 zerofill,则填充 0),以保证够 4 位,那么在前端显示的时候就是对应 4 个宽度的要求了。

官方强调,用不用这个 M 主要取决于你程序的需要 ( Whether it is used or not is up to the application),因为这个“显示宽度”并不限制可以存储在列中的值的范围。

以上是根据上面官方截图的理解,详见:http://dev.mysql.com/doc/refman/5.6/en/numeric-type-attributes.html