MySQL 数据类型超出范围

问题描述 投票:0回答:3

我有下表:

CREATE TABLE entries (id INT(10000) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstName VARCHAR(60), surname VARCHAR(60), course VARCHAR(250), subject VARCHAR(500), level VARCHAR(10), dateTime DATETIME);

但是我收到以下错误:

  ERROR 1439 (42000): Display width out of range for column 'id' (max = 255)

最大为 255 的原因是什么?我以为最大是4294967295?

有什么想法吗?

mysql sql types int sqldatatypes
3个回答
3
投票

您正在创建一个显示宽度为 10000 位的整数。 MySQL 显然只允许 255 位数字。 您不能以这种方式将整数的最大值限制为任意数字。只需使用 SMALLINT。这很接近你想要的。

顺便说一句。我喜欢将 ID 列设置为

SERIAL
。它是
BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
的别名。它比您明显需要的要宽得多。但它为您提供了某种 ID 列标准。此列中存储的最大值为
18446744073709551615


1
投票

它是可选值,决定

INT(10000)
显示的位数,最大范围为255。与int类型的范围无关。如果你真的想显示很多数字,只需使用
INT
或执行
INT(255) ZEROFILL
...

例如,如果您有

int(10) zerofill
,您会看到

0000000001 for 1
0000001001 for 1001 
and so on...

0
投票

看起来 10000 位数字太多了。 尝试一些更明智的方法,例如 |id INT NOT NULL AUTO_INCRMENT PRIMARY KEY" 祝你好运:)

© www.soinside.com 2019 - 2024. All rights reserved.