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.4k
2 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题