MySQL tinyint(m)

clipboard.png

CREATE TABLE `M` (
  `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  `tiny_1` tinyint(1) NOT NULL,
  `tiny_2` tinyint(2) NOT NULL,
  `tiny_3` tinyint(3) NOT NULL,
  `tiny_4` tinyint(4) NOT NULL,
  `tiny_5` tinyint(5) NOT NULL,
  `tiny_6` tinyint(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8;

ZEROFILL属性,补零。这个属性和宽度没有关系,我看有的博客上说,可以不用设置,用数据库默认的长度就行,这种做法可取吗?

clipboard.png

阅读 5.5k
2 个回答

https://dev.mysql.com/doc/ref...

对于 tinyint 来说,那个(4),或其他,只是显示宽度,不影响实际存储数值范围,也不影响对超过宽度的数字的正常显示与处理。

如果你自己处理这个数据的话,列宽基本是没有用的。

直接使用tinyint就行,不需要指定长度

推荐问题