MySQL:为什么int(size)和varchar(size)之间的大小不一致?

时间:2017-12-26 06:23:01

标签: mysql database

CREATE TABLE `features` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `feature_name` varchar(255) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;

对于int(大小)

size表示显示宽度,当字段指定了ZEROFILL时使用。

对于varchar(大小)

大小表示最大长度(字节)。

此参数有时用作显示属性,有时用作存储限制。这对Web开发人员来说真的很困惑。

他们为什么这样设计?

这是出于历史原因吗?

参考

  1. Stack Overflow:int(11) vs. int(anything else)

  2. 博客:https://alexander.kirk.at/2007/08/24/what-does-size-in-intsize-of-mysql-mean/

0 个答案:

没有答案