Mysql 将bigint长度设置为无穷大
我试图将数据类型为integer(BIGINT)的数据库表的一个字段的长度设置为无穷大。请告诉我如何将字段长度设置为无限/无限 Column Type Collation Attributes Null Default Extra Action 1 id bigint(255) No None AUTO_INCREMENT 列类型排序规则属性Null默认额外操作 1 id bigint(255)无无自动增量Mysql 将bigint长度设置为无穷大,mysql,Mysql,我试图将数据类型为integer(BIGINT)的数据库表的一个字段的长度设置为无穷大。请告诉我如何将字段长度设置为无限/无限 Column Type Collation Attributes Null Default Extra Action 1 id bigint(255) No None AUTO_INCREMENT 列类型排序规则属性Null默认额外操作 1 id bigint(255)无无自动增量 你不能。所有*IN
你不能。所有
*INT
字段都有一个固定的长度,该长度与各种编程语言(尤其是C语言)中整数的大小直接相关。即使是DECIMAL
也有一个最大大小。如果您需要大于它提供的值,则使用*文本中的一个字段将该值作为字符串保存,但请注意,即使这些字段也有限制。我认为DBMS中不允许使用该值,但某些DBMS(如MSDE 2000)可以接受无限浮点值。但如果保存此值,则是一个致命错误
我的意思是,你确信你的应用程序需要这样的数据,而且没有错误
BIGINT range is:
-9223372036854775808 to 9223372036854775807 normal. 0 to 18446744073709551615 UNSIGNED*.
The maximum number of digits may be specified in parenthesis
如果查询此无限或NaN数据,数据库可能会损坏或抛出致命错误。
这就是为什么如果您不知道存储的数据,建议在查询之前更好地使用异常处理。有关最大值,请参阅
BIGINT签名-9223372036854775807
BIGINT未签名-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)
mysql>创建表Table1(`col1`BIGINT,`col2`BIGINT UNSIGNED);
查询正常,0行受影响(0.02秒)
mysql>DESC表1;
+-------+---------------------+------+-----+---------+-------+
|字段|类型|空|键|默认|额外|
+-------+---------------------+------+-----+---------+-------+
|col1 | bigint(20)| YES | | NULL ||
|col2 | bigint(20)无符号| YES | | NULL ||
+-------+---------------------+------+-----+---------+-------+
一组2行(0.00秒)
mysql>插入表1值(922337203685477580718446744073709551615);
查询正常,1行受影响(0.00秒)
mysql>从表1中选择*;
+---------------------+----------------------+
|col1 | col2|
+---------------------+----------------------+
| 9223372036854775807 | 18446744073709551615 |
+---------------------+----------------------+
一行一组(0.00秒)
你说的……将字段长度设置为无穷大/无限长是什么意思?@peterm我的意思是将其设置为允许存储的最大值。如果OP想要存储精确的PI
十进制数字,那么我们对他来说有个坏消息,因为TEXT
数据类型中的4Gb
都不够。(我认为如果BIGINT
还不够,那么就出了问题)数据类型BIGINT的最大长度应该是多少?@user2304394:计算中的数字。这是BIGINT
的最大长度。在编程方面,64位。我给出了18446744073709551615
的长度,但不是accepted@user2304394请告诉我你是怎么做到的。您的BIGINT类型的列是否未签名?@user2304394:这些是最大值,而不是长度。@peterm谢谢您的更新解决了我一直在寻找的问题