我正在尝试将数据类型为整数(BIGINT)的数据库表的一个字段的长度设置为无穷大。请告诉我如何将字段的长度设置为无限/无限?
Column Type Collation Attributes Null Default Extra Action 1 id bigint(255) No None AUTO_INCREMENT
答案 0 :(得分:2)
你做不到。所有*INT
字段都具有固定长度,该长度与各种编程语言(特别是C)中的整数大小直接相关。即使DECIMAL
具有最大尺寸。如果您需要比它提供的更大,请使用*TEXT
字段之一将值保存为字符串,但请注意,即使这些字段有限制。
答案 1 :(得分:1)
要获得最大值,请查看documentation
BIGINT SIGNED - 9223372036854775807
BIGINT UNSIGNED - 18446744073709551615
mysql> CREATE TABLE Table1(`col1` BIGINT, `col2` BIGINT UNSIGNED); Query OK, 0 rows affected (0.02 sec) mysql> DESC table1; +-------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+-------+ | col1 | bigint(20) | YES | | NULL | | | col2 | bigint(20) unsigned | YES | | NULL | | +-------+---------------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> INSERT INTO Table1 VALUES(9223372036854775807, 18446744073709551615); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM Table1; +---------------------+----------------------+ | col1 | col2 | +---------------------+----------------------+ | 9223372036854775807 | 18446744073709551615 | +---------------------+----------------------+ 1 row in set (0.00 sec)
答案 2 :(得分:0)
我认为在DBMS中不允许这样做,但是像MSDE 2000这样的某些DBMS可以接受无限浮点值。但如果你保存这个值,这是一个致命的错误。
我的意思是确保您的应用程序需要此类数据而不会出现错误。 ?
BIGINT range is:
-9223372036854775808 to 9223372036854775807 normal. 0 to 18446744073709551615 UNSIGNED*.
The maximum number of digits may be specified in parenthesis
如果您查询此无限的OR NaN数据,您的数据库可能会损坏或抛出致命错误。 这就是为什么如果您不知道存储的数据,建议在查询之前更好地使用异常处理。