在使用SequelPro时,它使用默认的INT长度(用于显示!)当创建一个表的时候。例如:
CREATE TABLE `tbl` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;我的问题是,如果(11)仅用于显示目的(如果启用了零),那么它为什么会这样做?在默认情况下,这似乎是一个很奇怪的属性,没有它它就没有意义。
Update:是的,我知道(11)是显示宽度,不会改变INT的字节大小,而INT在mysql中是4。我的问题是,为什么它使用(11) 作为应用程序中显示宽度零填充的默认?我知道写这些大写是令人讨厌的,但似乎没有人读完整的问题(有5个答案/评论都说了同样的话)。
发布于 2021-11-05 19:25:41
括号中的数字即()并不确定可以存储在整数字段中的最大值和最小值。可以存储的最大值和最小值总是固定的。它只是显示整型数据类型的宽度。
发布于 2021-11-05 19:31:44
MySQL支持SQL标准整数类型整数(或INT)和SMALLINT。作为对标准的扩展,MySQL还支持整数类型TINYINT、MEDIUMINT和BIGINT。下表显示了每个整数类型所需的存储空间和范围。11.1.2整数类型(确切值)-整数、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT

https://stackoverflow.com/questions/69858233
复制相似问题