2013-11-22 88 views
1

我試圖將數據類型爲整數(BIGINT)的數據庫表的字段之一的長度設置爲無窮大。請讓我知道如何將場地的長度設置爲無限/無限?將bigint長度設置爲無窮大

 
Column Type Collation Attributes Null Default Extra Action 
1  id bigint(255)  No  None AUTO_INCREMENT 
+1

你說的* ...設置字段的長度爲無窮大/意思無限*??? – peterm

+0

@peterm我的意思是將它設置爲允許存儲的最大數量 – user2304394

回答

1

對於最大值看看documentation

BigInt有符號 - 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) 
+0

我給了'18446744073709551615'長度,但它沒有被接受 – user2304394

+0

@ user2304394請說明你是怎麼做到的。您的'BIGINT UNSIGNED'類型的列是? – peterm

+0

@ user2304394:這些是最大*值*,不是長度。 –

2

你不行。所有的*INT字段都有一個固定的長度,與各種編程語言(特別是C)中的整數大小直接相關。即使DECIMAL也有最大尺寸。如果你需要比它提供的更大的值,那麼使用*TEXT字段中的一個來保存字符串的值,但請注意,即使這些字段有限制。

+0

那麼,如果OP想要存儲'PI'小數位的確切值,那麼我們對他有壞消息,因爲即使是'TEXT'數據中的'4Gb'也是如此類型不夠。 (_我認爲如果'BIGINT'不夠,那麼出問題了) –

+0

數據類型bigint的最大長度應該是多少? – user2304394

+0

@ user2304394:計數[peterm的答案]中的數字(http://stackoverflow.com/a/20138520/20862)。這是'BIGINT'的最大長度。在編程方面,64位。 –

0

我認爲這是不允許在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 

如果您查詢這個無限OR NaN數據,您的數據庫可能會損壞或引發致命錯誤。 這就是爲什麼在查詢你是否不知道存儲數據之前,建議更好地使用Exceptional處理。