MySQL数据类型超出范围

时间:2015-03-15 23:50:06

标签: mysql sql types int sqldatatypes

我有下表:

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?

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

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

顺便说一句。我想将ID列设置为SERIAL。它是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的别名。它比你显然需要的方式更广泛。但它为ID列提供了某种标准。此列中存储的最大值为18446744073709551615

答案 1 :(得分:1)

它是可选值,用于确定INT(10000)显示的最大范围为255的位数。它与int类型的范围无关。如果你真的想要显示很多数字,只需使用INTINT(255) ZEROFILL ......

例如,如果您有int(10) zerofill,则会看到

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

答案 2 :(得分:0)

看起来10000位数太多了。 尝试更合理的事情,比如| id INT NOT NULL AUTO_INCREMENT PRIMARY KEY" 祝你好运:)